2012-07-25 626 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