数据网格中的多个单选按钮选择

multiple radiobuttons selection in datagrid

我有一个包含四列(一列有标签,三列是单选按钮类型)和多行的数据网格。我必须确保用户必须在每一行中 select 一个单选按钮。

单选按钮的列定义是这样的

<telerik:GridViewColumn Header="Different" HeaderTextAlignment="Center" UniqueName="diff" Width="100">
  <telerik:GridViewColumn.CellTemplate>
    <DataTemplate>
     <telerik:RadRadioButton Name="rdbtnDiff" GroupName="DiffTariff" Width="15" Height="15"/>

     </DataTemplate>
    </telerik:GridViewColumn.CellTemplate>
   </telerik:GridViewColumn>

如果我为所有单选按钮类型列提供相同的 GroupName,它允许我在整个网格中仅 select 一个单选按钮。当我为所有三列提供不同的 GroupName 时,它允许我在整列中仅 select 一个单选按钮。但我想要它排成一行。

我完全卡住了。任何形式的帮助将不胜感激。

这是我测试过并按要求工作的代码。

<Grid>
    <Grid.ColumnDefinitions>



    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="150" ></RowDefinition>
        <RowDefinition Height="150"></RowDefinition>

    </Grid.RowDefinitions>




    <StackPanel Orientation="Horizontal" Margin="0" Grid.Row="0">

        <RadioButton GroupName="row1group">Btn1</RadioButton>
        <RadioButton GroupName="row1group">Btn2</RadioButton>
        <RadioButton GroupName="row1group">Btn3</RadioButton>

    </StackPanel>


    <StackPanel Orientation="Horizontal" Margin="0" Grid.Row="1" >


        <RadioButton GroupName="row2group">Btn1</RadioButton>
        <RadioButton GroupName="row2group">Btn2</RadioButton>
        <RadioButton GroupName="row2group">Btn3</RadioButton>
    </StackPanel>
</Grid>

需要注意的主要事情是,我们应该有一个 属性 在整个集合中保持唯一。如果我们有这样的 属性 只需将其与组名绑定,单选按钮就可以正常工作。它可以是 index 属性 或任何其他。

所以我通过给每一行一个唯一的组名解决了这个问题。

This Helped me to do this.

这里是示例代码;

<dg:DataGridTemplateColumn Header="Male">                    
    <dg:DataGridTemplateColumn.CellTemplate>                        
        <DataTemplate>                            
            <RadioButton GroupName="{Binding Index}" IsChecked="{Binding Male}" />                        
        </DataTemplate>                    
    </dg:DataGridTemplateColumn.CellTemplate>                
</dg:DataGridTemplateColumn>                
<dg:DataGridTemplateColumn Header="Female">                    
    <dg:DataGridTemplateColumn.CellTemplate>                        
        <DataTemplate>                            
            <RadioButton GroupName="{Binding Index}" IsChecked="{Binding Female}" />                        
        </DataTemplate>                    
    </dg:DataGridTemplateColumn.CellTemplate>                
</dg:DataGridTemplateColumn>