C#WPF单选按钮分成不同的页面

时间:2014-03-10 16:02:38

标签: c# wpf radio-button

我正在使用设计器(非常新手)和C#作为支持代码处理WPF(XAML)。

我需要能够在同一组中有一些“页面”的单选按钮(例如,单击第1页上的项目A然后单击第2页上的B应该取消选择第1页上的A)。{{0} }

我将如何做到这一点?

谢谢!

请注意,“按钮”实际上只是图像上方的单选按钮。

1 个答案:

答案 0 :(得分:2)

首先,我不建议这样做。作为用户,如果我在一个页面上的选择影响了前一个选项,我会感到非常困惑/惊讶。

至于如何完成它,我将假设您正在使用MVVM(因为您应该在WPF中)。首先,每个页面的ViewModel需要引用Model中相同的后备属性。换句话说,你的模型有一个属性(其中MyRadioSelection是你绑定的枚举):

public MyRadioSelection GlobalSelection {get; set;}

并且您的视图模型包含:

public MyRadioSelection UserSelection
{
   get {return Model.GlobalSelection;}
   set
   {
       Model.GlobalSelection = value;
       OnPropertyChanged(UserSelection);
   }
}

然后你只需要一个ValueEquals转换器(来自这个answer),将你所有的单选按钮绑定到枚举,你应该好好去!

如果您想要进一步解释,请告诉我。此外,发布现有代码有助于改善这一答案。另请注意,您的模型可能需要一些方法来通知ViewModel外部(另一个ViewModel)对支持属性的更改。您可以从多个方向进行处理,但只需实现INotifyPropertyChanged并在ViewModel中监听它就可以了。