【问题标题】:wpf- Unwanted Selection Changewpf-不需要的选择更改
【发布时间】:2011-10-23 19:51:10
【问题描述】:

在我的主选项卡中,我有一些控件, 在我的第一个控件中,我有一个组合框。 我为 MainTab 写了一个 SelectionChange , 但是当它出现在组合框中时它也会触发,我没有向我的组合框添加任何选择更改事件, 但是当我将选择更改添加到 Combobox 并设置 e.erouted=true 时,将不会触发更改的 maintab 选择。 当我更改另一个控件选定项时,我可以做些什么来防止触发 maintab selectionchange ?

【问题讨论】:

    标签: wpf wpf-controls


    【解决方案1】:

    在主选项卡选择更改事件中

     if (e.OriginalSource.GetType() != typeof(ComboBox))
         {
             //do the code of main tab selection  here..
    
         }
    

    【讨论】:

    • 谢谢亲爱的shebin。最好使用原始资源。
    • 如果您嵌入了 ComboBox 以外的对象,例如另一个 TabControl?您最好将实例与类型进行比较。
    【解决方案2】:

    我也遇到过这个问题,还没有找到原因或正确的解决方案。我目前(尽管很简单)的解决方法是检查发件人是否是您期望的对象。

    在这种情况下,它的意思是这样的:

    if (sender != MainTab) 
        return;
    

    【讨论】:

    • 谢谢胖子,但我想做点它不会着火的事。
    【解决方案3】:

    将 e.Handled 设置为 true 将阻止事件从子控件 (ComboBox) 冒泡到父控件 (TabControl)

    【讨论】:

    • 它的问题是事件应该被添加到每个Combobox,我们不能添加到所有的。(我们不想要)
    猜你喜欢
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 2012-08-22
    相关资源
    最近更新 更多