我有一个to-do软件应用,我在其中动态地创建每个to-do任务。我在每个任务上都有一个核对标记图像,当点击时,会调用一个 MouseLeftButtonDown
事件。它工作得很好,但我需要确定我点击了哪个任务。这是我目前的做法。
private void CreateTask() {
Image checkmarkImage = new Image();
checkmarkImage.MouseLeftButtonDown += checkmarkPressed;
}
private void CheckmarkPressed(object sender, MouseButtonEventArgs e) {
Console.WriteLine("Pressed");
}
每当图像被点击时 控制台就会显示 "Pressed". 有什么方法可以让我识别出是哪个具体对象调用了这个函数?如果我可以将参数传递给 CheckmarkPressed
像一个整数一样的函数。tasksAdded
可以从任何数组中识别出特定的任务。有谁知道我怎样才能做到这一点?
我试过的方法有 sender.ToString()
或 e.Source
但这些只是告诉我,发件人是一个图像。
假设你使用的是事件处理程序 CheckmarkPressed
只被相同类型的对象调用,并且您设置了一个唯一的标识符来识别您的对象,如 @Ostas在他的评论中提到,您可以使用属性 Tag
为此 image.Tag = "checkbox" + tasksAdded
引自你的评论)。
private void CheckmarkPressed(object sender, MouseButtonEventArgs e) {
var caller = (Image) sender;
Console.WriteLine("Pressed by{0}",caller.Tag);
}