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; }
YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto
Copyright© 矢木 浩人 All Rights Reserved.