2012-07-25 175 views
0

我已經通過WPF的DataGrid SelectedCellsChanged事件觸發兩次

_itemsGrid.SelectedCellsChanged += Handle_SelectedCellsChangedEvent; 

訂閱了WPF的DataGrid SelectedCellsChanged事件,並通過

private void Handle_SelectedCellsChangedEvent (object sender, SelectedCellsChangedEventArgs args) 
{ 
    Logger.DoLogging("args.AddedCells.Count={0}, args.RemovedCells.Count={1}.", args.AddedCells.Count, args.RemovedCells.Count); 
    ... 
} 

我看到,有時一個行選擇變化有兩個通話記錄時:

    1. AddedCells.Count = 4,RemovedCells.Count = 0
    2. AddedCells.Count = 0,RemovedCells.Count = 4

現在這種行爲可能是不方便或意外,但本身沒有問題。 我真正的問題是,在某些情況下,數據網格忘記取消選擇刪除的單元格。 這意味着在調用和處理事件處理程序之後,前面選定的單元格仍然是可視化選擇的。

我的假設是,這種遺忘與我向用戶顯示的對話框有關。

有沒有人看到數據網格「忘記」取消選擇單元格?

由於 弗蘭克

回答

2

事件不僅封裝被添加到選擇(即SelectedCells)細胞的通知的動作,但它也通知從選擇中移除細胞。這使您可以對兩種選擇更改類型或兩種選擇更改類型進行操作。

我認爲這符合NotifyCollectionChangedEventArgs具有單個Action的事實。因此,要在網格的SelectedCells集合中顯示更改,需要同時添加和刪除項目。此添加和刪除的通知將分爲不同的通知,因爲該活動不支持將其顯示爲一個通知。

+0

嗨達米安,謝謝你的回答。然而,我編輯了我的問題,因爲我原來的問題不是2個事件,而是數據網格忘記取消選擇刪除的單元格。 – FrankE 2012-07-27 07:20:44