WPFデータGridバックグラウンドインタフェースを使用してフロントを更新しない問題を修正

1340 ワード

バックグラウンドでフロントを変更しても更新できない理由:
1.フロントページにBindingと書かれていない
2.バックグラウンドデータ定義のフィールドにgetとsetがない
3.データコンテナにObservableCollectionが使用されていない
4.フィールド内容変更時にデータソースをリセットしない
 
まず、インタフェースコードを簡単に例に挙げます.
        
            
                
            
        

DataGridにItemsSource="{Binding}"を設定する必要があります.
フィールド設定はBinding="{Binding Name}"と書く必要があります.
対応データは次のとおりです.
 public class DataItem  {         public string Name { get; set; }  }
フィールド名はページと一致する必要があります.フィールドはgetとsetを含む属性でなければなりません.
 
 
メンバー変数の定義:
ObservableCollection m_data = new ObservableCollection();
フロント・バックグラウンド・データの関連付け:
 DG.ItemsSource = m_data;
 
 
ObservableCollectionコンテナの使い方はリストに似ています.これは、要素を追加、削除(つまりCountが変化する)したときに通知することができます.
バックグラウンドにデータを追加しました:DataItem cm=new DataItem()  cm.Name = "AA";  m_data.Add(cm);インタフェースが変わります
バックグラウンドでのデータの削除:m_data_data.RemoveAt(0);インタフェースも変わります
しかし、データを変更しました:m_data[0].Name = "MM";このとき界面は変化しない(Countは変化していないため...)
だからこの時DG.ItemsSource = null;   DG.ItemsSource = m_data; インタフェースが変わる