【发布时间】:2011-10-23 14:58:31
【问题描述】:
有两个单选按钮。在每一个上,我都为 Checked 和 Unchecked 设置了事件处理程序。当radio1被选中并且我设置radio2时,取消选中radio1的事件处理程序不运行,只有检查radio2的事件处理程序。我怎样才能同时运行它们?
【问题讨论】:
标签: wpf events radio-button
有两个单选按钮。在每一个上,我都为 Checked 和 Unchecked 设置了事件处理程序。当radio1被选中并且我设置radio2时,取消选中radio1的事件处理程序不运行,只有检查radio2的事件处理程序。我怎样才能同时运行它们?
【问题讨论】:
标签: wpf events radio-button
这些事件仅反映用户交互,如果您想捕获所有更改,您可能希望将两个 RadioButtons 上的 IsChecked 绑定到各自的属性,然后您可以订阅 PropertyChanged 事件以获取所有更改。 (您当然需要实现INotifyPropertyChanged,或者您可以绑定到新的依赖属性,您可以在其上注册属性更改的回调)。
更简单:
var desc = DependencyPropertyDescriptor.FromProperty(RadioButton.IsCheckedProperty, typeof(RadioButton));
desc.AddValueChanged(_radioButton1, (_,__) =>
{
var isChecked = (bool)_radioButton1.IsChecked;
//...
});
【讨论】: