WPF CheckBox的已检查和未检查状态的单独事件:为什么?

时间:2011-04-07 00:43:33

标签: c# .net wpf events xaml

  1. 我可以使用Changed这样的单个事件来同时处理这两个事件吗?

  2. 他们为什么这样分开?
    是因为对两者都有一个事件要求你通过名称引用控件,你需要在XAML中指定,这会增加混乱吗?

3 个答案:

答案 0 :(得分:27)

  1. 不直接。但是,您可以对两者使用相同的事件处理程序,并查询IsChecked参数的sender属性(当然,在将其转换为CheckBoxToggleButton之后)。< / LI>
  2. 这两个事件是wpf特定技术所必需的,例如storyboard,EventTriggers等。 EventTriggers无法区分状态,只能按事件区分,因此需要两个不同的事件。
  3. 总的来说:我根本不会使用这些事件 - 我会将IsChecked属性绑定到ViewModel上的适当属性,从而将代码保持在最低限度(理想情况下)根本没有自定义代码。

答案 1 :(得分:11)

分割为需要它的人提供了更多的粒度(对于那些不需要它的人来说不会受到伤害),如果你想要,你可以使用一个处理程序来处理这两个事件。

 <CheckBox Content="CheckBox" Name="checkBox1" Checked="checkBox1_changed" Unchecked="checkBox1_changed" />

答案 2 :(得分:1)

例如,选中时启动故事板并在未选中时停止。