ObservableCollection上的CollectionChanged事件不会监听商品更新

时间:2019-08-25 20:23:12

标签: c# xamarin

我有一个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属性已更新通知我的观点。

0 个答案:

没有答案