我有一个ObservableCollection
对象,我在其中通过OnClick事件更新单个对象属性。我知道ObservableCollection
是一个容器,这意味着它只会在添加或删除项目时通知我的视图的绑定上下文。
因此,我找到了一种用于通知属性更新事件的方法。
public MenuViewModel()
{
listOfItems = new ObservableCollection<MasterPageItem>(masterpageItems.getPages());
listOfItems.CollectionChanged += items_CollectionChanged;
}
public void changeSelected(int index)
{
if (index != -1)
{
listOfItems[index].isSelected = true;
}
int i = 0;
foreach (MasterPageItem e in listOfItems)
{
if (i != index)
{
e.isSelected = false;
}
i++;
}
}
static void items_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.OldItems != null)
{
foreach (INotifyPropertyChanged item in e.OldItems)
item.PropertyChanged -= item_PropertyChanged;
}
if (e.NewItems != null)
{
foreach (INotifyPropertyChanged item in e.NewItems)
item.PropertyChanged += item_PropertyChanged;
}
}
static void item_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
throw new NotImplementedException();
}
当更改isSelected属性时,上面的代码不会通知我的视图。因此,我很乐意问你,如何实现将isSelected属性已更新通知我的观点。