是否可以仅为用户交互处理WPF中的SelectionChanged事件?

bin*_*neh 7 wpf user-interaction selectionchanged

我想在WPF DataGrid元素中处理SelectionChanged事件,仅用于用户交互/选择,如果是由于绑定或其他设置值,则跳过.知道我将如何确定选择是否被用户交互更改?或者任何可以执行类似任务的替代事件?

Raf*_*fal 13

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

示例代码XAML:

<DataGrid SelectionChanged="OnSelectionChanged" PreviewMouseDown="OnPreviewMouseDown">
        <!--some code-->          
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

代码背后:

bool isUserInteraction;

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

        isUserInteraction = false;
    }
}

private void OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    isUserInteraction = true;
}
Run Code Online (Sandbox Code Playgroud)