在WPF MVVM中加载单选按钮

本文关键字:加载 单选按钮 MVVM WPF | 更新日期: 2023-09-27 17:50:52

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

我有一个加载人员详细信息的屏幕。从列表中选择一个人,按下select键,就会加载这个人的信息。数据中有"性别"在用户控件上,我使用单选按钮。一个是男,一个是女。我想知道如何将结果绑定到单选按钮,以便您选择的人Joe显示为Male。

我不想使用单选按钮,除了显示的目的。我只是想展示那个人的性别。

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

所以这个人有Name (string)和Gender(string)。性别字段是Male或Female。我如何在Binding中使用它来显示选中的单选按钮?

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

 public bool GenChecked { get; set; }

我猜从那里,我会说,如果性别是男性,IsSelected Gender是真的吗?我不清楚。这是我第一次在WPF MVVM中使用单选按钮

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

编辑1

澄清一下。抱歉造成任何误解。usercontrol/view目前有两个单选按钮:

<RadioButton Content="Male" IsChecked="{Binding GenChecked}" />
<RadioButton Content="Female" IsChecked="{Binding GenChecked}" />

视图模型通过一个类获取信息,该类将Name和Gender作为字符串。类的对象之一是Joe, Male。

在我的视图模型上,我有GenChecked的bool。如果乔。Gender = "Male",则必须选中男性单选按钮。但我想如果我说GenChecked为真,两个都会被选中吗?

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

希望这能澄清一些

在WPF MVVM中加载单选按钮

假设真为男,假为女(不,我不想开始政治讨论),你可以这样做

在xaml

<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;
    }