You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF中如何将DataGrid选中行数据同步显示到RadioButton?

解决DataGrid选中行同步RadioButton性别的问题

你的代码逻辑搞反了——现在是判断RadioButton状态去取Gender值,但我们需要的是根据选中行的Gender值,来设置对应的RadioButton是否选中。下面是修改后的简单实现:

修改后的代码

private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    DataGrid datagrid = (DataGrid)sender;
    DataRowView row_selected = datagrid.SelectedItem as DataRowView;

    if (row_selected != null)
    {
        // 同步文本框内容(这部分你原来的逻辑是对的)
        Name_txt.Text = row_selected["Name"].ToString();
        Age_txt.Text = row_selected["Age"].ToString();
        Address_txt.Text = row_selected["Address"].ToString();

        // 获取选中行的性别值,根据你数据源里的实际格式调整
        string gender = row_selected["Gender"].ToString().Trim();

        // 根据性别值设置对应RadioButton的选中状态
        rbMale.IsChecked = gender == "男" || gender == "Male"; // 匹配你的数据中男性的标识
        rbFemale.IsChecked = gender == "女" || gender == "Female"; // 匹配你的数据中女性的标识
    }
}

关键说明

  • 先从选中行提取Gender字段的值,一定要和你数据源里的性别标识一致(比如如果数据里男性存的是数字1,就改成gender == "1")
  • 直接给RadioButton的IsChecked属性赋值,就能自动选中对应按钮
  • 加.Trim()是为了避免数据里的空格导致判断出错

如果你的性别字段用布尔值存储(比如true代表男,false代表女),可以改成下面的写法:

bool isMale = (bool)row_selected["Gender"];
rbMale.IsChecked = isMale;
rbFemale.IsChecked = !isMale;

内容的提问来源于stack exchange,提问作者An Lê

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:01:21