2
在celledit結束我想火法只有當值改變的Silverlight的DataGrid celleditended
我有一定的可編輯欄我想火只有當值已經改變
的DataGridCellEditEndedEventArgs財產e.EditAction
始終方法返回comitted
在celledit結束我想火法只有當值改變的Silverlight的DataGrid celleditended
我有一定的可編輯欄我想火只有當值已經改變
的DataGridCellEditEndedEventArgs財產e.EditAction
始終方法返回comitted
您可以收聽DataGrid.PreparingCellForEdit事件(或可能DataGrid.BeginningEdit,但我不是100%正面),並存儲該單元格的值。
然後,而不是聽DataGrid.CellEditEnded
,而是傾聽DataGrid.CellEditEnding。此事件專門爲您提供取消編輯的選項,因此不會將其視爲提交。 DataGridCellEditEndingEventArgs爲它提供了一個Cancelbool
屬性。檢查新值是否與舊值相同,如果是,請將Cancel
屬性設置爲true
。那麼當事件發生時,其EditAction
將爲Cancel
。
void MyGrid_PreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs args)
{
//store current value
}
void MyGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs args)
{
//check if values are the same
if (valuesAreSame)
args.Cancel = true;
}