我发现一个回答你的问题usingVS2010
条件,如果(e.EditAction == DataGridEditAction.Commit)在RowEditEnding将满足乌尔要求
请参阅下面的代码。
private void dataGrid1_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
if (e.EditAction == DataGridEditAction.Commit)
{
MessageBox.Show("asd");
}
}
这是Xaml的背后。
<DataGrid AutoGenerateColumns="False" CanUserAddRows="True" Height="241"
RowEditEnding="dataGrid1_RowEditEnding" HorizontalAlignment="Left"
Name="dataGrid1" VerticalAlignment="Top" Width="573" >
<DataGrid.Columns>
<DataGridTextColumn Header="name" Binding="{Binding id}"
Width="300">
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
有可能有一些验证事件。你可以检查一下。 – Sankarann 2013-07-26 09:24:37
你真的试图在CollectionChanged看足够吗?检查里面可以让你知道什么时候项目实际插入或更新,所以你可以检查每一次,如果字段填写然后执行更改逻辑:http://stackoverflow.com/questions/4587448/collectionchanged-sample。在我意识到这种方法的局限性(切换句柄,然后强制执行提交和刷新等)之前,我提高了@Mah,并且对collectionchanged进行了更多的思考(但是现在不能删除upvote) – 2015-10-15 05:23:22