【发布时间】:2010-11-30 22:59:48
【问题描述】:
我有一个ListBox 数据绑定到我的PersonCollection 类的集合。接下来,我为Person 类型的对象定义了一个数据模板,它由一个DockPanel 组成,其中包含一个TextBlock 代表一个人的名字和一个Button 来从列表中删除这个人。它看起来非常好。
我面临的问题是,当我单击数据模板中定义的按钮时,我无法到达列表框中的选定项目(并将其删除)。这是按钮的处理程序:
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。这里要注意的重要一点是,不能简单地通过调用从列表中获取所选项目,因为我在窗口中有多个列表,并且所有这些列表都实现相同的数据模板,即共享相同的事件处理程序删除按钮。
我会很感激我能得到的所有帮助。谢谢。
【问题讨论】:
标签: wpf wpf-controls elementtree