【问题标题】:WPF DataGrid SelectedCellsChanged event fires twiceWPF DataGrid SelectedCellsChanged 事件触发两次
【发布时间】:2012-07-25 14:59:58
【问题描述】:

我已通过

订阅
_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。 AdditionalCells.Count = 4, RemovedCells.Count = 0
    2。 AdditionalCells.Count = 0, RemovedCells.Count = 4

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

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

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

谢谢 弗兰克

【问题讨论】:

    标签: c# wpf datagrid


    【解决方案1】:

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

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

    【讨论】:

    • 嗨达米安,感谢您的回答。然而,我编辑了我的问题,因为我最初的问题不是 2 个事件,而是数据网格忘记取消选择已删除的单元格。
    猜你喜欢
    • 1970-01-01
    • 2021-03-17
    • 2011-04-15
    • 2014-04-07
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多