0

我有一堆用户控件,它们上的按钮存储在列表框中。现在他们都将他们的按钮事件传递给一个主脚本并打印“A button was clicked”,但如果它打印“Button D was clicked”会更好,因为我需要准确存储在数组中点击了哪些按钮。

4

2 回答 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 回答