我有一个ListBox
绑定到我的PersonCollection
班级集合的数据。接下来,我为 类型的对象定义了一个数据模板,Person
其中DockPanel
包括一个包含TextBlock
人名的 a 和Button
从列表中删除该人的 a。它看起来非常好。
我面临的问题是,当我单击数据模板中定义的按钮时,我无法到达列表框中的选定项目(并将其删除)。这是按钮的处理程序:
private void RemovePersonButton_Click(object sender, RoutedEventArgs e)
{
Button clickedButton = (Button)e.Source;
DockPanel buttonPanel = (DockPanel)clickedButton.Parent;
Control control = (Control)button.Parent;
}
最后创建的对象control
是null
,即我无法在元素树上进一步前进,因此我无法到达列表及其SelectedItem
. 这里要注意的重要一点是,不能简单地通过调用从列表中获取所选项目,因为我在窗口中有多个列表,所有这些列表都实现相同的数据模板,即共享相同的事件处理程序删除按钮。
我会很感激我能得到的所有帮助。谢谢。