4

MVVM デザイン パターンを使用した wpf データグリッドについてサポートが必要です。

observablecollection にバインドされた datagid があります。グリッドの最初の列には、編集できない小数値が含まれています。2 番目の列には、10 進数値を入力する必要があるテキスト ボックスが含まれています。3 番目の列には、最初の列の値と 2 番目の列の値の差をそのままの値で表示する必要があります。observablecollection の Collectionchanged イベントを処理することで、コレクション内のアイテムの 1 つのフィールドがいつ変更されたかを判断できるようになることを期待していましたが、うまくいかないようです。

また、グリッドの選択項目の PropertyChanged イベントを処理しようとしましたが、それも機能していません。

データグリッドDataGridTemplateColumnのテキストボックスの値が変更されるたびに、ビューモデルでイベントを発生させる方法を教えてください。そして、3列目の対応する行に計算値を設定するにはどうすればよいですか?

4

1 に答える 1

2

反対側から (つまり、ViewModel から) 取り組む必要があります。

ObservableCollection 内のアイテム (CollectionItem と呼ぶ) は、INotifyPropertyChanged を実装する必要があります。

グリッドを微調整して、データを変更したときにデータの変更が登録/コミットされるようにする必要があります (フォーカス アウト/移動ではありません)。

次に、 CollectionItem で、入力の値の変更に基づいて値を更新しようとする必要があります。詳細が必要な場合はお知らせください

于 2011-07-21T14:18:39.567 に答える