我有一堆用户控件,它们上的按钮存储在列表框中。现在他们都将他们的按钮事件传递给一个主脚本并打印“A button was clicked”,但如果它打印“Button D was clicked”会更好,因为我需要准确存储在数组中点击了哪些按钮。
问问题
371 次
2 回答
1
事件调用中的 sender 参数指的是发送按钮。
private void btn1_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)sender;
}
如果第一个不这样做,这可能会起作用:
private void btn1_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)e.OriginalSource;
}
如果您只想要 listboxitem,这是一种更通用的方法
private void btn1_Click(object sender, RoutedEventArgs e)
{
object context = (e.OriginalSource as FrameworkElement).DataContext;
var lbi = lb.ItemContainerGenerator.ContainerFromItem(context) as ListBoxItem;
}
查看帖子: 如何在单击模板中的按钮时选择 ListBoxItem? 如何从工具栏托盘或 wpf 中的其他控件检索点击处理程序中的发件人?
于 2013-10-02T18:10:01.020 回答
1
您不能使用按钮的 CommandParameter 并引用它。
于 2013-10-02T18:10:32.417 回答