修改ObservableCollection项

时间:2012-03-15 10:48:51

标签: c# wpf observablecollection

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

_MyCollection[num].Data1 = someText;

例如,根据以下代码,意图是:_MyCollection[5].Type = changedText;

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

我该怎么做?

2 个答案:

答案 0 :(得分:6)

我猜你只是想看看这些变化对吗? 这与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));
        }
    }
}

答案 1 :(得分:1)

这将触发CollectionChanged事件:

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