Изменить элемент ObservableCollection - PullRequest
4 голосов
/ 15 марта 2012

Я добавил несколько элементов в ObservableCollection, и теперь я хочу изменить один из них, например:

_MyCollection[num].Data1 = someText;

Например, согласно приведенному ниже коду, намерение:1006 *

Как я могу это сделать?

Ответы [ 2 ]

6 голосов
/ 15 марта 2012

Полагаю, вы просто хотите увидеть изменения, верно? Это не имеет ничего общего с 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 голос
/ 15 марта 2012

Это вызовет событие CollectionChanged:

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