我正在使用设计器(非常新手)和 C# 作为支持代码来开发 WPF (XAML)。
我需要能够在同一组中拥有几个单选按钮“页面”(即单击第 1 页上的项目 A,然后单击第 2 页上的 B 应取消选择第 1 页上的 A)。
我该如何去做呢?
谢谢!
请注意,“按钮”实际上只是图像上方的单选按钮。
最佳答案
首先,我不建议这样做。作为用户,如果我在一个页面上的选择影响了前一个页面上的选择,我会感到非常困惑/惊讶。
至于如何实现它,我假设您正在使用 MVVM(就像在 WPF 中一样)。首先,每个页面的 ViewModel 需要引用模型中相同的支持属性。换句话说,您的模型具有如下属性(其中 MyRadioSelection 是您要绑定(bind)到的某个枚举):
public MyRadioSelection GlobalSelection {get; set;}
并且您的 View 模型具有:
public MyRadioSelection UserSelection
{
get {return Model.GlobalSelection;}
set
{
Model.GlobalSelection = value;
OnPropertyChanged(UserSelection);
}
}
然后您只需要一个 ValueEquals 转换器(来自此 answer ),将所有单选按钮绑定(bind)到枚举,然后就可以开始了!
如果您需要进一步解释,请告诉我。另外,发布您现有的代码将有助于改进这个答案。另请注意,您的模型可能需要某种方式来通知 ViewModels 对支持属性的外部(另一个 ViewModel)更改。您可以从多个方向解决此问题,但只需实现 INotifyPropertyChanged 并在 ViewModel 中监听它就可以了。
关于C# WPF 单选按钮拆分到不同的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22305205/