我已经向ObservableCollection添加了几个元素,现在我想修改其中一个元素,如:
_MyCollection[num].Data1 = someText;
例如,根据以下代码,意图是:_MyCollection[5].Type = changedText;
_MyCollection.Add(new MyData
{
Boundary = Text1,
Type = Text2,
Option = Text3
});
我该怎么做?
答案 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);