WPF + MVVM + RadioButton:如何处理单个属性的绑定?

2024-05-24

From this https://stackoverflow.com/questions/2284752/mvvm-binding-radio-buttons-to-a-view-model and this https://stackoverflow.com/questions/883246/mvvm-radiobuttons(和其他)关于 Stack Overflow 和互联网上许多其他材料的问题,我了解了如何将单选按钮(选项按钮)与视图模型绑定。

但它们都为单选按钮的每个可能值创建单独的属性。一question https://stackoverflow.com/questions/28571283/radiobuttons-with-behavior-bind-to-single-property与我的要求类似,但接受的答案建议使用ListBox而不是单选按钮。

例如,要表示人的性别(数据类型Char, 可能的值'M', 'F'),需要在视图模型中创建三个属性:PersonGender, IsPersonMale, IsPersonFemale.
我只想在一个属性上控制这个PersonGender。 我可以这样做吗?如果是,怎么办?


你需要一个IValueConverter.

//define this in the Window's Resources section or something similiarly suitable
<local:GenderConverter x:Key="genderConverterKey" />


<RadioButton Content="M" IsChecked="{Binding Gender, Converter={StaticResource ResourceKey=genderConverterKey}, ConverterParameter=M}" />
<RadioButton Content="F" IsChecked="{Binding Gender, Converter={StaticResource ResourceKey=genderConverterKey}, ConverterParameter=F}" />

转换器

public class GenderConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return ((string)parameter == (string)value);
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return (bool)value ? parameter : null;        
    }
}

Replace null (in ConvertBack) with Binding.DoNothing如果在这种情况下不应应用绑定。

return (bool)value ? parameter : Binding.DoNothing;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF + MVVM + RadioButton:如何处理单个属性的绑定? 的相关文章

随机推荐

  • 在 pyqt4 应用程序中记录所有异常

    使用标准 python 日志记录 api 记录 pyqt4 应用程序中的所有异常的最佳方法是什么 我尝试将 exec 包装在 try except 块中 并记录其中的异常 但它只记录应用程序初始化时的异常 作为临时解决方案 我将最重要的方法
  • 测试随机值 - 对这种方法的想法?

    好的 我一直在研究随机图像选择器和队列系统 因此您不会经常看到相同的图像 一切都很顺利 就我蹩脚的代码而言 until我到了随机位 我想测试一下 但是如何测试呢 没有Debug Assert i IsRandom 可悲的是 D 所以 我在用
  • PHP使用c++扩展会更快吗?

    我现在正在构建一个推荐系统 一个网站 我想使用PHP作为脚本语言 推荐系统可能会进行复杂的矩阵计算或其他操作 考虑到性能 我想用C 来做矩阵计算或者其他复杂的计算 所以我需要PHP调用C 函数 获取结果并进行其他处理 我知道我可以使用 PH
  • Axon 框架的现实生活体验[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 作为研究用于项目的 CQRS 的一部分 我遇到了轴突框架 http www axonframework org 我想知道是否有人有任何现实生活经
  • 在对象的 NSArray 中搜索与任何属性匹配的字符串

    我有一个 NSArray 对象 这些对象有 10 个属性 我想对这些对象进行文本搜索 我知道如何一次搜索 1 个房产 但有没有一种简单的方法可以一次搜索所有房产 以下是我的对象具有的属性列表 property nonatomic retai
  • 为什么编译器在这里错过矢量化?

    考虑以下valarray类 include
  • 如何反转包裹上的弹性盒方向以实现“蛇形包裹”?

    我想找到一种方法 让单个容器中的元素换行到与前一行相反的方向的新行 就像一条蛇向后弯曲一样 我无法使用 flexbox 以及 flex direction 和 flex wrap 属性的任何组合来实现此结果 Flexbox 结果与期望结果的
  • 为什么 parseInt() 不起作用? [复制]

    这个问题在这里已经有答案了 我正在用 JavaScript 构建一个计算器 我即将完成 但有一个逻辑错误 我正在尝试将字符串转换为数字 以便进行计算 例如 我想要var value 10 要转换为整数 我已经尝试过parseInt valu
  • Dataflow/apache beam:管理自定义模块依赖项

    我有一个使用 apache beam 的 py 管道 它导入另一个模块 py 这是我的自定义模块 我有一个这样的结构 mymain py myothermodule py 我将 myothermodule py 导入到 mymain py
  • 防止 DLL 文件通过 MS Detours 加载到我的进程中

    我想阻止特定的第三方 DLL 文件在运行时加载到我的应用程序进程中 我最初的尝试是使用 MS Detours 产品 我有一个32位的MFC http en wikipedia org wiki Microsoft Foundation Cl
  • Silverlight 5 - 改进/更改的综合列表

    是否有 silverlight 5 新增功能的完整列表 我看到了不同的博客等 但显然问题在于细节 当他们说更好的绑定支持到底有什么不同更好 等等 我想看详细的论文 Pete Brown 列出了 RC 中的主要变化 http 10rem ne
  • 更新到 3.6.5 后,Hibernate 将属性映射到 SQL 公式失败

    我刚刚从 3 3 0 GA 更新到 Hibernate 3 6 5 Final 并且在对 XML 映射属性进行 SQL 公式调用时遇到了问题
  • 使用 Pyinstaller 打包:PyQt4.QtGui.setStyle 被忽略?

    问题 如何在 Ubuntu 14 04 上使用 Pyinstaller 为我的应用程序设置 PyQt 样式 Details 我在 Windows 上使用 pyinstaller 打包了一个 PyQt4 Python 应用程序 它似乎工作正常
  • 带有两个滑块的交互式 matplotlib 绘图

    I used 绘图库创建一些图 这取决于 8 个变量 我想研究一下当我改变其中一些内容时情节如何变化 我创建了一些脚本来调用绘图库一个并生成不同的快照 稍后我将其转换成电影 这还不错 但有点笨拙 我想知道是否可以使用键盘按键与绘图重新生成进
  • 点击jtable中的超链接?

    如何为中的每条记录启用超链接JTable 我想要做的是 用户可以单击超链接 然后该超链接将显示他们可以编辑 更新的信息 或者 如何启用表数据的就地编辑 另一个问题是我目前正在使用以下方式来显示不同的屏幕 但这不是一种优雅的方式 我知道我们应
  • PHP的spl_autoload_register如何解决与require_once的循环依赖?

    PHP的spl autoload register如何解决与require once的循环依赖 循环依赖可以解决某些情况 但不是全部 让我们从一个失败的例子开始 假设我们在不同的文件中定义了三个类 cat php class Cat ext
  • 如何使用实体框架选择单个列?

    有没有办法使用 Entity Framework 4 获取单个列的全部内容 与此 SQL 查询相同 SELECT Name FROM MyTable WHERE UserId 1 您可以使用 LINQ Select http msdn mi
  • 组合 hibernate @Transactional 和 ehcache @Cacheable 总是创建数据库事务

    在对我们的应用程序进行负载测试时 我注意到如果您使用 Transactional 和 Cacheable 注释 hibernate 总是会创建一个数据库事务 有没有简单的方法可以防止这种情况发生 在 Spring 中解决这个问题的一种更详细
  • 无法在 Windows 10 上运行 Python 3.7“权限被拒绝”

    当尝试使用 Git Bash 在 Windows 10 上运行 Python 3 7 时 出现以下错误 python version bash c Users Name AppData Local Microsoft WindowsApps
  • WPF + MVVM + RadioButton:如何处理单个属性的绑定?

    From this https stackoverflow com questions 2284752 mvvm binding radio buttons to a view model and this https stackoverf