从itemsource触发对象事件

时间:2019-01-21 12:52:48

标签: c# wpf events collections

我有一个带有事件的对象,静态函数GetAll()返回一个对象集合。

在我的WPF页面中,我以该功能GetAll填充了ListBox的itemsource。

现在,我想实现WPF页面处理此ListBox中每个对象的事件,但是我找不到任何好的方法来实现这一点。

2 个答案:

答案 0 :(得分:0)

使用GetAll()循环遍历foreach返回的集合,并将事件处理程序关联到其中的每个对象,例如:

var collection = GetAll();
if (collection != null)
{
    foreach (var item in collection)
    {
        item.YourEvent += YourEventHandler;
    }
}
listBox.ItemsSource = collection;

答案 1 :(得分:0)

我想你的课程看起来像这样:

public class Data
{
   public static List<Data> GetAll(){.....};
   ...other property and in somewhere raise myEvent...
   public event doSomethingDelegate myEvent;
}

我的建议是尝试创建一个路由事件而不是普通事件。路由事件允许您在ListBox或ListBox的父级中监听此事件。