我想处理 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/