【问题标题】:C# WPF radio buttons split onto different pagesC# WPF 单选按钮拆分到不同的页面
【发布时间】:2014-04-13 20:29:13
【问题描述】:

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

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

我该怎么做呢?

谢谢!

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

【问题讨论】:

  • +1 描述了一个很好的问题。

标签: c# wpf radio-button


【解决方案1】:

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

至于如何完成它,我假设您正在使用 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),将你所有的单选按钮绑定到枚举,你应该很高兴!

如果您需要进一步解释,请告诉我。此外,发布您现有的代码将有助于改进此答案。另请注意,您的模型可能需要某种方式来通知 ViewModels 对支持属性的外部(另一个 ViewModel)更改。您可以从多个方面着手,但只需实现 INotifyPropertyChanged 并在 ViewModel 中监听它就可以了。

【讨论】:

    猜你喜欢
    • 2011-07-10
    • 2013-07-06
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多