我有一个静态的observableCollection。
使用MVVM方法从UI更新。
我怎么能理解什么时候制作mod? (我需要在进行更改时更改布尔标志的值)
这是我的代码:
public static event EventHandler serbatoiDisponibiliPerErogatoriChanged;
private static ObservableCollection<TabSerbatoi> p_serbatoiDisponibiliPerErogatori = new ObservableCollection<TabSerbatoi>();
public static ObservableCollection<TabSerbatoi> serbatoiDisponibiliPerErogatori
{
get { return p_serbatoiDisponibiliPerErogatori; }
set
{
p_serbatoiDisponibiliPerErogatori = value;
if (serbatoiDisponibiliPerErogatoriChanged != null)
serbatoiDisponibiliPerErogatoriChanged(null, EventArgs.Empty);
}
}
我还试图将一个函数与事件serbatoiDisponibiliPerErogatoriChanged匹配,但它永远不会被调用,因为通过调试,我看到它只在窗口的init处进入set方法。
奇怪的是obeservableCollection已正确更新,但它从未在set方法中传递。
我该怎么办?
更新:
在mot的回答中,我做到了这一点:
void test(object sender, NotifyCollectionChangedEventArgs e)
{
Debug.WriteLine("test");
}
和
serbatoiDisponibiliPerErogatori.CollectionChanged += test;
但是,它永远不会被调用......它永远不会进入“测试”功能......为什么?
答案 0 :(得分:1)
问题是集合没有再次设置,它在内部被修改。
如果要跟踪集合中的添加/删除元素,可以注册CollectionChanged
事件。
serbatoiDisponibiliPerErogatori.CollectionChanged += MyEventHandler;