修改ObservableCollection的项目

本文关键字:项目 ObservableCollection 修改 | 更新日期: 2023-09-27 18:27:57

我已经向ObservableCollection添加了几个元素,现在我想修改其中一个元素,比如:

_MyCollection[num].Data1 = someText;

举个例子,根据下面的代码,意图是:_MyCollection[5].Type = changedText;

_MyCollection.Add(new MyData
{
    Boundary = Text1,
    Type = Text2,
    Option = Text3
});

我该怎么做?

修改ObservableCollection的项目

我想你只是想看看这些变化,对吧?这与ObservableCollection无关,而是与MyData对象有关。它必须实现INotifyPropertyChange——如果你实现了,你会看到你所做的更改。

public class MyData : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    private string type;
    public string Type
    {
      get { return type; }
      set
      {
         if (value != type)
         {
            type = value;
            NotifyPropertyChanged("Type");
         }
      }
    }
    // ... more properties
    private void NotifyPropertyChanged(String info)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(info));
        }
    }
}

这将触发CollectionChanged事件:

MyData temp = _MyCollection[index];
temp.Type = changedText;
_MyCollection.SetItem(index, temp);