代码之家  ›  专栏  ›  技术社区  ›  DotNetSpartan

在wpf数据网格中只允许签入一个单选按钮

  •  0
  • DotNetSpartan  · 技术社区  · 8 年前

    我的datagrid绑定到一个可观察的集合,datagrid有两列-一列用于单选按钮,另一列用于显示名称。 目前,我可以在datagrid上进行多个选择,但我的要求是一次只选择一个单选按钮,以便所选单选按钮将所选用户名通知viewmodel。 我怎样才能做到?

    我试过的是:

    <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>
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   DanTheMan    8 年前

    就放一个 GroupName 为了你的 RadioButton .全部 单选按钮 在里面 DataGrid 应该只有一个选择,因为它们有相同的组。 这对我有用。

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