2011-08-10 56 views
1

在我的主选项卡中,我有一些控件,我的第一个控件中有 我有一个组合框。 我为MainTab写了一个SelectionChange, ,但它也在combobox中加入时触发,我没有添加任何选择更改事件到我的combobox, ,但是当我将选择更改添加到Combobox并设置e.erouted = true时,维护选择改变不会被解雇。 当我更换另一个控制选择项目时,我可以做些什么来防止发生维护选择更改?wpf-不需要的选择更改

回答

2

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

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

    } 
+0

谢谢亲爱的shebin.Its更好的想法使用原始来源。 – AliRezza

+0

不客气。 – Shebin

+1

如果你嵌入了一个ComboBox以外的对象,例如另一个TabControl?你最好比较实例和类型。 – fatty

1

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

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

if (sender != MainTab) 
    return; 
+0

谢谢脂肪,但我想做的事情是它不会发射。 – AliRezza

-1

设置e.Handled真会从孩子向上冒泡停止事件控制(组合框)到父控件(TabControl)

+0

它的问题在于,事件应该添加到每个Combobox中,我们不能将它添加到所有组合框中(我们不需要) – AliRezza