当我更改可观察集合中的元素时会触发什么事件?
What event is fired when I change an element on the observable collection?
我的视图中有一个数据网格,它绑定到我的视图模型中的一个可观察集合。
当我这样做时:
myObservableCollection[2] = myItem;
数据网格刷新项目,例如,如果我在数据网格中缩短了元素,如果 myItem
更新了受缩短影响的字段,则将其置于新位置.
但是,我想滚动到新位置,所以我尝试使用附加行为,当事件选择更改被触发时效果很好,但我需要知道什么事件被触发时我重新分配 myItem
.
我尝试捕捉事件 AddingNewItem
和 SourceUpdated
,但它们都没有被触发。
Netaholic 给出了大部分答案,但只是为了完成并放置一些清晰可见的代码:
public void Demo()
{
ObservableCollection<String> collec = new ObservableCollection<String>() {"hello"};
collec.CollectionChanged += CollectionChanged;
collec[0] = "goodbye";
}
void CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
switch (e.Action)
{
case NotifyCollectionChangedAction.Add:
break;
case NotifyCollectionChangedAction.Move:
break;
case NotifyCollectionChangedAction.Remove:
break;
case NotifyCollectionChangedAction.Replace:
Debug.WriteLine("The event you re expecting");
break;
case NotifyCollectionChangedAction.Reset:
break;
default:
break;
}
}
在第二个参数中,您将找到被替换的索引和对象
此致
我的视图中有一个数据网格,它绑定到我的视图模型中的一个可观察集合。
当我这样做时:
myObservableCollection[2] = myItem;
数据网格刷新项目,例如,如果我在数据网格中缩短了元素,如果 myItem
更新了受缩短影响的字段,则将其置于新位置.
但是,我想滚动到新位置,所以我尝试使用附加行为,当事件选择更改被触发时效果很好,但我需要知道什么事件被触发时我重新分配 myItem
.
我尝试捕捉事件 AddingNewItem
和 SourceUpdated
,但它们都没有被触发。
Netaholic 给出了大部分答案,但只是为了完成并放置一些清晰可见的代码:
public void Demo()
{
ObservableCollection<String> collec = new ObservableCollection<String>() {"hello"};
collec.CollectionChanged += CollectionChanged;
collec[0] = "goodbye";
}
void CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
switch (e.Action)
{
case NotifyCollectionChangedAction.Add:
break;
case NotifyCollectionChangedAction.Move:
break;
case NotifyCollectionChangedAction.Remove:
break;
case NotifyCollectionChangedAction.Replace:
Debug.WriteLine("The event you re expecting");
break;
case NotifyCollectionChangedAction.Reset:
break;
default:
break;
}
}
在第二个参数中,您将找到被替换的索引和对象
此致