我有一个XamDataGrid
绑定到一个可观察的集合。由于XamDataGrid
可编辑,因此可以添加/编辑/删除记录。我已经实施了CollectionChanged
& PropertyChanged
事件。
CollectionChanged
事件包含以下代码:
if (e.Action == NotifyCollectionChangedAction.Remove || e.Action == NotifyCollectionChangedAction.Add)
{
if (e.OldItems != null)
{
// Detach the event handler from current instance;
foreach (BusinessTelephone oldItem in e.OldItems)
{
if (oldItem is INotifyPropertyChanged)
{
(oldItem as INotifyPropertyChanged).PropertyChanged -= new PropertyChangedEventHandler(PhoneDetails_PropertyChanged);
}
}
}
if (e.NewItems != null)
{
// Attach the event handler to the new instance;
foreach (BusinessTelephone newItem in e.NewItems)
{
if (newItem is INotifyPropertyChanged)
{
(newItem as INotifyPropertyChanged).PropertyChanged += new PropertyChangedEventHandler(PhoneDetails_PropertyChanged);
}
}
}
}
所有这一切都很好。
我有一个奇怪的问题,如下所示。
当我在网格中添加记录并从网格中删除它时,我通过循环遍历集合从集合中删除该项目
Ex:PhoneDetailsCollection.Remove(item);
现在,当我添加另一条记录时,CollectionChanged
事件不会被解雇。
我在这里错过了什么吗?任何帮助都非常感谢...
答案 0 :(得分:0)
e.Action可能不是NotifyCollectionChangedAction.Remove或NotifyCollectionChangedAction.Add。可能是通过“重置”,“移动”或“替换”来提升事件。无论采取何种行动,我都会仔细检查您是否正在处理此事件。