wpf - WPF 中的 SelectionChanged 事件是否只能针对用户交互进行处理?

标签 wpf user-interaction selectionchanged

我想处理 WPF DataGrid 元素中的 SelectionChanged 事件,仅用于用户交互/选择,如果是由于绑定(bind)或其他设置值而导致的,则跳过。知道如何确定选择是否因用户交互而更改吗?或者任何可以完成类似任务的替代事件?

最佳答案

也许尝试将 SelectionChanged 事件与 PreviewMouseDown 事件结合起来。当用户单击一行时,您设置一些属性,并在 SelectionChanged 事件处理程序中检查该属性是否已更改。

示例代码 XAML:

<DataGrid SelectionChanged="OnSelectionChanged" PreviewMouseDown="OnPreviewMouseDown">
        <!--some code-->          
</DataGrid>

隐藏代码:

bool isUserInteraction;

private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if (isUserInteraction)
    {
        //some code

        isUserInteraction = false;
    }
}

private void OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    isUserInteraction = true;
}

关于wpf - WPF 中的 SelectionChanged 事件是否只能针对用户交互进行处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14301271/

相关文章:

WPF转PDF

WPF 仅更改组合框的 PART_EditableTextBox 上的属性

xaml - GridView - 在已选择的项目上触发 SelectionChanged 事件

silverlight-4.0 - Silverlight MVVM,停止 SelectionChanged 触发以响应 ItemsSource 重置

mysql - 为什么在使用 EF6 的 WPF 应用程序中,日期时间字段始终写为零?

WPF 的 MediaPlayer 无法在某些电脑上播放声音

user-interface - OCaml:GUI编程的有效途径?

安卓 : Touch events in layout after animation

jquery - 当应用程序在 node.js 中崩溃时通知管理员

java - JList:上一个选择的项目