我正在使用设计器(非常新手)和C#作为支持代码处理WPF(XAML)。
我需要能够在同一组中有一些“页面”的单选按钮(例如,单击第1页上的项目A然后单击第2页上的B应该取消选择第1页上的A)。{{0} }
我将如何做到这一点?
谢谢!
请注意,“按钮”实际上只是图像上方的单选按钮。
答案 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中监听它就可以了。