Datagrid の RowEditEnding イベントでは ItemSource に変更が反映されない対応
ナビゲーションに移動
検索に移動
Datagrid の RowEditEnding イベントでは ItemSource に変更が反映されない対応
WPF |
- 反映されていてほしいところだが、反映されていないので、反映させる。
ItemSourceを設定
ObservableCollection<Hoge> hogeList; : hogeList の生成 : this.datagrid.ItemsSource = hogeList;
強制的に反映
private bool isManualEditCommit; private bool isRowCommited; private void datagrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e) { if (!isManualEditCommit) { isManualEditCommit = true; DataGrid grid = (DataGrid)sender; grid.CommitEdit(DataGridEditingUnit.Row, true); isRowCommited = true; isManualEditCommit = false; } if (isRowCommited) { // データグリッドでの変更が反映されている // 上記ブロックがないとこのタイミングでは反映されていない var item = e.Row.Item as Hoge; Console.WriteLine(item.ToString()); // <- 反映済み } isRowCommited = false; }
© 2006 矢木浩人