我订阅了
_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);
...
}
我看到有时候一行选择更改有两个调用:
现在这种行为可能是不方便或意外的,但本身没问题。 我真正的问题是,在某些情况下,数据网格会忘记取消选中已删除的单元格。 这意味着在调用和处理事件处理程序之后,仍然可以在视觉上选择前面选择的单元格。
我的假设是这种遗忘与我正在向用户显示的对话框有关。
有没有人看到数据网格“忘记”取消选择单元格?
由于 弗兰克
答案 0 :(得分:3)
该事件不仅封装了通知添加到选择中的单元格的动作(即SelectedCells),而且还通知从选择中移除的单元格。这允许您对两种选择更改类型或两种选择更改类型执行操作。
我认为这符合NotifyCollectionChangedEventArgs只有一个动作的事实。因此,要显示网格的SelectedCells集合中的更改,需要添加和删除项目。此添加和删除的通知被分为不同的通知,因为事件不支持将它们显示为一个。