首页 > 解决方案 > 只允许在 WPF 数据网格中选中一个单选按钮

问题描述

我的数据网格绑定到一个可观察的集合,数据网格有两列——一列用于单选按钮,另一列用于显示名称。目前,我可以在数据网格上进行多项选择,但我的要求是一次只选择一个单选按钮,以便所选单选按钮应通知视图模型有关所选用户名的信息。我怎样才能实现它?

这是我尝试过的:

<DataGrid Width="{Binding ActualWidth, ElementName=panel}" 
                              ItemsSource="{Binding obvUsers}"                           
                              Height="390" >                                                                                                                                                                        
                        <DataGrid.Columns>                            
                            <DataGridTemplateColumn Header="" Width="100">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <RadioButton IsChecked="{Binding IsUserSelected}"                                    
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                            <DataGridTemplateColumn Header="Name">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding UserName}" />
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>                
                        </DataGrid.Columns>                       
                    </DataGrid>

标签: c#wpfmvvmwpfdatagridivalueconverter

解决方案


只需GroupName为您的RadioButton. All RadioButtoninDataGrid应该只有一个选择,因为它们具有相同的组。这对我有用。

<DataGridTemplateColumn Header="" Width="100">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <RadioButton GroupName="abc" IsChecked="{Binding IsUserSelected}">
            </RadioButton>                                    
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

推荐阅读