【问题标题】:Separate events for checked and unchecked state of WPF CheckBox: Why?WPF CheckBox 的选中和未选中状态的单独事件:为什么?
【发布时间】:2011-04-07 00:43:33
【问题描述】:
  1. 是否有一个像 Changed 这样的事件可以用来同时处理这两个事件?

  2. 为什么要这样分开?
    是不是因为两者都有一个事件需要您按名称引用控件,而您需要在 XAML 中指定该名称,而这会增加混乱?

【问题讨论】:

    标签: c# .net wpf events xaml


    【解决方案1】:
    1. 不直接。但是,您可以对两者使用相同的事件处理程序,并查询sender 参数的IsChecked 属性(当然是在将其转换为CheckBoxToggleButton 之后)。
    2. 这两个事件是 wpf 特定技术所必需的,例如故事板、EventTriggers 等。 EventTriggers 无法区分状态,只能通过事件,所以需要两个不同的事件。

    一般来说:我根本不会使用这些事件 - 我会将 IsChecked 属性绑定到您的 ViewModel 上的适当属性,从而将您的代码隐藏保持在最低限度(理想情况下,在全部)。

    【讨论】:

      【解决方案2】:

      拆分为需要它的人提供了更大的粒度(对不需要的人不会造成伤害),如果您愿意,您可以使用一个处理程序处理这两个事件。

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

      【讨论】:

        【解决方案3】:

        例如,在选中时启动情节提要,在未选中时停止。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-12-26
          • 1970-01-01
          • 2015-08-20
          • 1970-01-01
          • 2012-06-18
          • 2015-06-18
          • 2021-03-11
          • 2016-07-16
          相关资源
          最近更新 更多