gpt4 book ai didi

c# - 在 C# WPF 中,为什么我的 TabControl 的 SelectionChanged 事件触发得太频繁?

转载 作者:IT王子 更新时间:2023-10-29 03:49:17 25 4
gpt4 key购买 nike

我有一个选项卡式 GUI,每个选项卡都包含一个框架。在其中一个框架中有一个 DataGrid。当用户选择此选项卡时,我需要对数据网格进行排序,因此我使用 TabControl SelectionChanged 事件来触发排序。但是,每次从 DataGrid 中选择一个项目时都会触发此事件,即使选项卡本身保持不变也是如此。

我已经尝试了许多不同的事件:获得 TabItem 的焦点一个 TabItem 的 RequestBringIntoView

但他们似乎都受到这个问题的困扰。这是什么原因造成的?

最佳答案

TabControl.SelectionChangedComboBox.SelectionChanged 是同一事件

来源于Selector.SelectionChanged .

因此,如果您没有在事件处理程序中将事件标记为已处理,它将在树中向上冒泡,并最终到达您的 TabControl,这会导致此“触发太频繁”问题.

将您的事件标记为在您的 ComboBox/ListBox/ListView/您在 DataGrid 中使用的任何其他选择器的 SelectionChanged 中处理,就像这样:

private void MyComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
e.Handled = true;
}

这种不便将消失;)。

关于c# - 在 C# WPF 中,为什么我的 TabControl 的 SelectionChanged 事件触发得太频繁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3659858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com