C# 可观察采集设置器isn';添加项目时不触发
我正在WPF中使用MVVM Light框架进行一个项目。我有一个C# 可观察采集设置器isn';添加项目时不触发,c#,mvvm,mvvm-light,C#,Mvvm,Mvvm Light,我正在WPF中使用MVVM Light框架进行一个项目。我有一个数据网格,它绑定到一个可观察集合。到目前为止,当我添加一个新项时,DataGrid不会更新,我相信这是因为setter从不触发 public ObservableCollection<Worker> MasterWorkerList { get { return _masterWorkerList; } set { System.Windows.MessageBox.Show("
数据网格
,它绑定到一个可观察集合
。到目前为止,当我添加一个新项时,DataGrid
不会更新,我相信这是因为setter从不触发
public ObservableCollection<Worker> MasterWorkerList
{
get { return _masterWorkerList; }
set
{
System.Windows.MessageBox.Show("Firing");
_masterWorkerList = value;
RaisePropertyChanged(() => MasterWorkerList);
}
}
如何使RaisePropertyChanged
触发,以便更新UI
我尝试过使用本文中的解决方案,但没有效果:
如有任何建议,将不胜感激。如果您需要更多我的代码,请告诉我。您的对象列表中不应该有公共设置器。您应该在构造函数中设置ut
public MyClass(){
_masterWorkerList = new ObservableCollection<Worker>();
_masterWorkerList.CollectionChanged += OnCollectionChanged;
}
public ObservableCollection<Worker> MasterWorkerList
{
get { return _masterWorkerList; }
}
private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e){
System.Windows.MessageBox.Show("Firing");
//RaisePropertyChanged(() => MasterWorkerList);
}
publicmyclass(){
_masterWorkerList=新的ObservableCollection();
_masterWorkerList.CollectionChanged+=OnCollectionChanged;
}
公共可观测集合主工作列表
{
获取{return\u masterWorkerList;}
}
CollectionChanged的私有void(对象发送方,NotifyCollectionChangedEventArgs e){
System.Windows.MessageBox.Show(“点火”);
//RaisePropertyChanged(()=>MasterWorkerList);
}
当您向ObservableCollection添加内容时,CollectionChanged
事件被调用。如果需要更深入的控制,可以从observeCollection
继承并重写AddItem
和removieItem
方法
public MyClass(){
_masterWorkerList = new ObservableCollection<Worker>();
_masterWorkerList.CollectionChanged += OnCollectionChanged;
}
public ObservableCollection<Worker> MasterWorkerList
{
get { return _masterWorkerList; }
}
private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e){
System.Windows.MessageBox.Show("Firing");
//RaisePropertyChanged(() => MasterWorkerList);
}