c# - WPF MVVM中加载单选按钮

标签 c# wpf data-binding mvvm radio-button

我想在 WPF 应用程序中加载一个显示人员详细信息的屏幕。
我正在使用 MVVM 和 C#

我有一个加载人员详细信息的屏幕。
从列表中选择一个人,您按选择并加载该人的信息。
其中的数据是“性别”
在用户控件上,我使用单选按钮。一个是男的,一个是女的。
我想知道如何将结果绑定(bind)到单选按钮,以便您选择的人乔显示为男性。

我不想将单选按钮用于显示目的。我只是想显示那个人的性别。

它是使用单选按钮的 Content 还是 IsSelected 绑定(bind)?我知道我应该使用绑定(bind)(显然,如果我使用的是 MVVM),但我不知道在哪里。

所以这个人有姓名(字符串)和性别(字符串)。性别字段是男性或女性。如何在 Binding 中使用它来显示选中的单选按钮?

我在 ViewModel 中声明了以下内容:

 public bool GenChecked { get; set; }

我猜从那里,我会说,如果 Gender 是 Male,IsSelected Gender 是真的吗?我不清楚。这是我第一次涉足 WPF MVVM 中的单选按钮

如果这个问题不清楚,或者您想看一些代码示例,请发表评论,我会进行编辑

编辑 1

只是要清楚。如有任何误解,请见谅。
usercontrol/view 目前有两个单选按钮:
<RadioButton Content="Male" IsChecked="{Binding GenChecked}" />
<RadioButton Content="Female" IsChecked="{Binding GenChecked}" />

View 模型通过一个类获取信息,该类具有名称和性别作为字符串。类(class)的对象之一是男乔。

所以在我的 View 模型上,我有 GenChecked 的 bool 值。如果 Joe.Gender = "Male"则必须选择男性单选按钮。但我认为如果我说 GenChecked 是真的,两者都会被选中?

这就是我感到困惑的地方。单选按钮必须分组吗?绑定(bind)必须相同吗?它必须绑定(bind)到内容吗?

希望这能更清楚一些

最佳答案

假设 true 是男性,false 是女性(不,我不想开始政治讨论)你可以做这样的事情

在你的xml中

<RadioButton Content="Male" IsChecked="{Binding Gender"}/>
<RadioButton Content="Female" IsChecked="{Binding Gender, Converter={StaticResource BoolToOppositeBoolConverter}}"/>

并写一个 IValueConverter (BoolToOppositeBoolConverter) 你有这样的代码
    public object Convert1(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var boolValue = bool.Parse(value.ToString());

        return !boolValue;
    }

关于c# - WPF MVVM中加载单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22504116/

相关文章:

c# - 从 Facebook C# SDK 的 V5 迁移到 V6

c# - .NETTY : Second batch of data sent includes the first?

c# - WPF XAML 限定属性值导致异常

wpf - 单击按钮时将填充设置为 LinearGradientBrush

c# - 绑定(bind)到集合减少到它的属性之一

javascript - 如何为默认 knockout 绑定(bind)创建包装函数

C# 无法绑定(bind)到数据源上的属性或列

c# - 使用从外部类继承嵌套类

c# - 代码隐藏中的数据绑定(bind)拒绝工作

asp.net - 以声明方式访问转发器内的页面属性数据绑定(bind)