我發現一個回答你的問題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