==[[Datagrid の RowEditEnding イベントでは ItemSource に変更が反映されない対応]]==
[[WPF]] |
====強制的に反映====
private bool isManualEditCommit;
private bool isRowCommitedis[[R]]owCommited; private void datagrid_RowEditEndingdatagrid_[[R]]owEditEnding(object sender, DataGridRowEditEndingEventArgs DataGrid[[R]]owEditEndingEventArgs e)
{
if (!isManualEditCommit)
isManualEditCommit = true;
DataGrid grid = (DataGrid)sender;
grid.CommitEdit(DataGridEditingUnit.Row[[R]]ow, true); isRowCommited is[[R]]owCommited = true;
isManualEditCommit = false;
}
if (isRowCommitedis[[R]]owCommited) {
// データグリッドでの変更が反映されている
// 上記ブロックがないとこのタイミングでは反映されていない
var item = e.Row[[R]]ow.Item as Hoge;
Console.WriteLine(item.ToString()); // <- 反映済み
}
isRowCommited is[[R]]owCommited = false;
}