繁体   English   中英

WPF DataBinding-重复控件按钮触发的事件

[英]WPF DataBinding - Fire event from a repeated control button

关于绑定的问题开始 ,我想在以下情况下寻求帮助。

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

我想做的一件事情是通过单击DataTemplate中定义的按钮从集合中删除特定项目。 为按钮定义Click处理程序使我可以处理事件,但是我不知道从何处获取与模板化按钮相关的imageFileData对象。 我的按钮事件处理程序显然将按钮作为发送方传递,并传递了一组RoutedEventArgs,但是我不知道如何将该数据与集合中的项目相关联,以便允许我将其删除。

谁能帮我这个忙,还是因为我不知道从哪里开始,我注定要笨拙而徒劳的Google搜索? ;)

谢谢ZS

用于生成项目的数据将在ButtonDataContext (它从容器继承-在您的情况下为ListBoxItem ):

private void ButtonClicked(object sender, EventArgs e)
{
    var button = sender as Button;
    var imageFileData = button.DataContext as ImageFileData;

    ...
}

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

走可视化树向上的一个例子被发现这里GetObjectDataFromPoint这里FindAncestor

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM