私は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);
}
}
}
}
これはすべて正常に機能しています。
以下に示す奇妙な問題があります。
グリッドにレコードを追加してグリッドから削除すると、コレクションをループしてコレクションからアイテムを削除しています
例: PhoneDetailsCollection.Remove(item);
ここで、別のレコードを追加すると、CollectionChanged
イベントが発生しません。
ここで何か見逃しましたか?どんな助けでも大歓迎です...