我有一堆用户控件,上面有按钮存储在列表框中。现在他们都将他们的按钮事件传递给主脚本并打印出“点击了一个按钮”,如果打印出“按钮D被点击”会更好,因为我需要准确存储在数组中点击的按钮。
答案 0 :(得分: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;
}
看帖子: How to select ListBoxItem upon clicking on button in Template? How to retrieve sender in click handler from toolbartray or other control in wpf?
答案 1 :(得分:1)
你不能使用按钮的CommandParameter并引用它。