具有行为的RadioButtons绑定到单个属性

  • 我有几个RadioButtons,我不想将它们中的每一个的“IsChecked”属性绑定到代码中的唯一属性。
  • 我希望有一个像“CurrentSelected”这样的属性,并根据它来设置“IsChecked”。
  • 另外我不想使用转换器。
  • 我试图使用行为“ChangePropertyAction”,但看起来它只是以一种方式工作。 这是我的代码:

                                

我的视图模型非常简单:MainViewModel.cs

 public class MainViewModel : ViewModelBase { private DirectionEnum _selectedDirection; public DirectionEnum SelectedDirection { get { return _selectedDirection; } set { if (_selectedDirection != value) { _selectedDirection = value; RaisePropertyChanged(); } } } public MainViewModel() { SelectedDirection = DirectionEnum.Up; } } 

从代码中可以看出,应该已经检查了“Up”RadioButton ……我错过了什么?

对我来说,一个常见的解决方案是使用包含Selection行为的ListBox,并覆盖模板以将项目绘制为RadioButtons。

我的XAML模板通常看起来像这样:

     

样式应用如下:

  

我发现管理分组RadioButton的选择行为比在代码隐藏或使用转换器中维护大量IsChecked属性要干净得多。