WPF CheckBox 的选中和未选中状态的单独事件:为什么?

发布于 2024-10-30 10:30:13 字数 154 浏览 0 评论 0原文

  1. 是否有一个像 Changed 这样的事件可以用来同时处理这两个事件?

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

  1. Is there a single event like Changed that I can use to handle both events together?

  2. Why are they separated like this?
    Is it because having a single event for both would requires you to reference the control by name, which you would need to specify in the XAML, and this would increase the clutter?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

所有深爱都是秘密 2024-11-06 10:30:13
  1. 不直接。但是,您可以对两者使用相同的事件处理程序,并查询 sender 参数的 IsChecked 属性(在将其转换为 CheckBox 或 <当然是代码>ToggleButton)。
  2. 这两个事件是 wpf 特定技术所必需的,例如 Storyboard、EventTriggers 等。 EventTriggers无法区分状态,只能通过事件来区分,因此需要两个不同的事件。

一般而言:我根本不会使用这些事件 - 我会将 IsChecked 属性绑定到 ViewModel 上的适当属性,将代码隐藏到最小值(理想情况下根本没有自定义代码)。

  1. Not directly. However, you can use the same event handler for both, and query the IsChecked property of the sender parameter (after casting it to CheckBox or ToggleButton of course).
  2. the two events are required for wpf specific technology, like storyboard, EventTriggers and similar. EventTriggers can't distinguish between state, only by event, so two different events are needed.

On a general note: I wouldn't use the events at all - I would bind the IsChecked property to an appropiate property on your ViewModel, keeping your code-behind to a minimum (Ideally no custom code at all).

倾其所爱 2024-11-06 10:30:13

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

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

The split gives more granularity for those who need it (can't hurt for those who don't) and if you want you can handle both events with one handler.

 <CheckBox Content="CheckBox" Name="checkBox1" Checked="checkBox1_changed" Unchecked="checkBox1_changed" />
不一样的天空 2024-11-06 10:30:13

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

For example to start a storyboard when checked and stop it when unchecked.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文