我要给鼠标选中ComboBox的项后触发事件
但是这个事件不是SelectionChanged
因为这个事件的话,在后台MVVM设置值的时候也会触发
而我只想要的是在鼠标选定某个项后触发谢谢

解决方案 »

  1.   

    你可以反过来想
    后台MVVM设置值之前设一个变量,表示无视该SelectionChanged事件
    后台MVVM设置值之后再将这个值设回来
      

  2.   

    SelectedIndexChanged或SelectedValueChanged
      

  3.   

    1楼说的方法很好啊。不算麻烦啊,只要在在执行前设置标志、执行后取消标志、事件处理前判断下标志,修改三个地方加上一个bool变量定义就可以了,我觉得这是最简便的解决方法了。如果确实有很多地方用到这样的设置,你可以给ComboBox写个类似AddItemWithOutRasingEvents扩展方法,在这个方法里设置比如_disableEvents这样的标志,然后其它地方都改成调用这个扩展方法。
    再来也可以写个自定义控件继承Combox,按类似上面的方法把所有会触发事件的方法都重写掉,设置一个标志再调用base的方法。这样比用扩展方法严密些,不过还是没有直接了当用1楼的方法好。