2014-01-24 75 views
1

我有一個綁定到項目集合的WPF DataGrid。在後面的代碼我已經訂閱了CellEditEnding事件:DataGrid CellEditEnding事件在綁定後引發有時

dg.CellEditEnding += dg_CellEditEnding; 

我希望改變的值是在綁定的對象更新之前,此事件將得到提升。但看起來有時它確實,有時卻並非如此。如果我在網格中更改一個值並按回車鍵,則會首先引發該事件,然後是正在更新的綁定對象。如果我按Tab鍵,或者點擊同一行中的另一個單元格,它們會反向發生。

爲什麼會發生這種情況?我需要一種方法在應用到綁定對象之前查看已更改的值。是否有另一個我可以訂閱的事件?我意識到這不是傳統的MVVM方法。這是自定義數據網格控件的一部分,它具有一些難以在視圖模型中實現的要求。

回答

0

對於「LostFocus」事件,您可以使用CellEditEnding事件的相同主體。這樣,無論你想在離開單元格時完成編輯時發生什麼,都可以。

至少,這就是我期望它的工作原理。試試看,讓我知道!

這裏是一個link到數據網格的所有事件,如果你不認爲LostFocus會適用於你要找的東西。

相關問題