2011-08-09 26 views
1

有两种辐射功能按钮。在每个我都设置了事件处理程序的选中和未选中。当选中radio1并且设置radio2时,取消选中radio1的事件处理程序不会运行,只有检查radio2的事件处理程序。我怎样才能运行它们?wpf中的辐射功能事件

回答

1

这些事件仅反映用户交互,如果要捕获所有可能想要将两个RadioButton上的IsChecked绑定到相应属性的更改,则可以订阅PropertyChanged事件以获取所有更改。 (您当然需要实现INotifyPropertyChanged,或者您可以绑定到新的依赖属性,您可以在其中注册属性已更改的回调)。

即使简单:

var desc = DependencyPropertyDescriptor.FromProperty(RadioButton.IsCheckedProperty, typeof(RadioButton)); 
desc.AddValueChanged(_radioButton1, (_,__) => 
    { 
     var isChecked = (bool)_radioButton1.IsChecked; 
     //... 
    });