1

我已通过订阅

_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

现在这种行为可能不方便或出乎意料,但它本身没有问题。我真正的问题是,在某些情况下,数据网格忘记取消选择已删除的单元格。这意味着在事件处理程序被调用和处理之后,之前选择的单元格仍然被视觉选择。

我的假设是这种遗忘与我向用户显示的对话框有关。

有没有其他人看到数据网格“忘记”取消选择单元格?

谢谢弗兰克

4

1 回答 1

3

该事件不仅封装了通知单元格被添加到选择中的动作(即SelectedCells),而且它还通知单元格从选择中删除。这允许您对两种或其中一种选择更改类型采取操作。

我相信这与NotifyCollectionChangedEventArgs有一个 Action的事实相对应。因此,要显示网格的 SelectedCells 集合中的更改,需要添加和删除项目。由于事件不支持将它们显示为一个,因此添加和删除的通知被分成不同的通知。

于 2012-07-25T15:30:39.587 回答