0

ListCollectionView にバインドされたリストビューがあります。LCV には常に単一のソート記述があります。この方法でコレクションを更新しています:

IEditableCollectionView IEditView = lvBatches.Items as IEditableCollectionView;

IEditView.EditItem(m_collectionView.CurrentItem);//I've also tried passing MyListView.SelectedItem
((TestData)IEditView.CurrentEditItem).start = frm.newDate;
((TestData)IEditView.CurrentEditItem).edited = true;
IEditView.CommitEdit();

ただし、リストビューのアイテムには何も起こりません。リストを並べ替えると、変更が反映されます。コレクションの Refresh() もリストビューを更新しますが、それはダイナマイトの棒を使って炭酸飲料の缶を開けるようなものです。

誰にもアイデアはありますか。上記のコードは、ネット上で見られる例のように見えるので、それは問題ではないと思います。よくある間違いはありますか? 私はそれを機能させていましたが、今は機能していません。何が壊れたのかわかりません。

前もって感謝します。

4

2 に答える 2

3

VeryObservableCollectionの作成に関する私の回答を参照してください。

あなたが経験している問題は、単なるプロパティの変更ではコレクションが更新されないことです.CollectionChangedは、要素を追加または削除した場合にのみ発生します. そのため、PropertyChanged をフックして、プロパティが変更されたときに CollectionChanged を送信する必要があります。これは、VeryObservableCollection が行うことです。

于 2011-07-29T20:42:43.367 に答える
1

NotifyPropertyChanged を呼び出していますか? Refesh() が正しい値を示している場合、それらはコレクション内にある可能性が高いですが、UI は値を更新する必要があります。

于 2011-07-29T22:06:06.880 に答える