WPF DataBinding - 来自重复控制按钮的Fire事件

时间:2009-02-20 15:39:39

标签: wpf data-binding event-handling

my question on binding in general开始,我想就以下情况寻求帮助。

我有一个通过ListBox控件中的DataTemplate显示的对象集合(imageFileData)。控件绑定到ObservableCollection。集合和模板都在我的应用程序xaml和xaml.cs文件中定义。向集合中动态添加项目按预期工作,并在列表框中显示新的模板化项目。好。

我希望能够做的一件事是通过单击DataTemplate中定义的按钮从集合中删除特定项。为按钮定义Click处理程序允许我处理事件,但我不知道从哪里获取与模板化按钮相关的imageFileData对象。我的按钮事件处理程序显然将按钮作为发件人和一组RoutedEventArgs传递,但我无法弄清楚如何将此数据与集合中的项目关联以便允许我将其删除。

任何人都可以帮助我,或者我注定要尴尬和毫无结果的Google搜索,因为我不知道从哪里开始? ;)

由于 ZS

2 个答案:

答案 0 :(得分:5)

用于生成项目的数据位于Button的{​​{1}}(它从容器继承 - 在您的案例中为DataContext):

ListBoxItem

答案 1 :(得分:0)

另一种方法是将可视树移动到ListBoxItem(包含您在datatemplate中定义的所有元素)。 如果ListBoxItem包含单击的按钮,则可以轻松获取和删除ListBoxItem的数据。

GetObjectDataFromPoint中的hereFindAncestor中的here可以找到向上走视觉树的示例。