问题:
'我使用ControlTemplate填充ListView。 在每个项目的此模板中,将有一个按钮,单击该按钮需要执行某些操作。
我如何访问生成ListViewItem的对象,以便我可以获取某些内容(如id)。
答案 0 :(得分:4)
DataContext
是你的朋友。每个列表项(如果您没有覆盖按钮DataContext
,则该项内的按钮)将有一个数据项,用于生成DataContext
属性中的项目。
答案 1 :(得分:0)
如果您动态创建按钮,可以使用Tag
属性附加数据,或将Button
类继承为My_Button
并设置您需要的属性,例如“userId “
另一种方式
尝试观看点击按钮的Parent
属性。
例如:
private void Button_Click(object sender, RoutedEventArgs e)
{
Button clickedButton = sender as Button;
ListViewItem holderItem = clickedButton.Parent as ListViewItem;
Console.WriteLine("You are clicked the buton in " + holderItem.Name);
}
或内联解决方案:
private void Button_Click(object sender, RoutedEventArgs e)
{
Console.WriteLine("You are clicked the buton in " + ((sender as Button).Parent as ListViewItem).Name);
}