2016-06-22 15 views
0

にデータグリッドで無効に私はwpfで働いていると私は、データグリッドの下に使用しています:複数選択WPF

<DataGrid Name="dgUseCaseList" AutoGenerateColumns="False" Grid.Row="0" CanUserAddRows="False" VirtualizingStackPanel.IsVirtualizing="False" Height="620" VerticalAlignment="Top" SelectionMode="Single" > 
         <DataGrid.Columns> 
          <DataGridTemplateColumn Width="30"> 
           <DataGridTemplateColumn.Header> 
            <CheckBox Name="chkSelectAllUseCases" Click="chkSelectAllUseCases_Click" IsHitTestVisible="False"/> 
           </DataGridTemplateColumn.Header> 
           <DataGridTemplateColumn.CellTemplate> 
            <DataTemplate> 
             <CheckBox Name="chkSelectUseCase" IsChecked="{Binding Path=IsSelected,Mode=TwoWay}" Click="chkSelectUseCase_Click"/> 
            </DataTemplate> 
           </DataGridTemplateColumn.CellTemplate> 
          </DataGridTemplateColumn> 

          <DataGridTextColumn Width="100" Header="UseCaseId" Binding="{Binding Path=UseCaseId}"> 
           <DataGridTextColumn.CellStyle> 
            <Style TargetType="DataGridCell"> 
             <Setter Property="ToolTip" Value="{Binding UseCaseDescription}" /> 
            </Style> 
           </DataGridTextColumn.CellStyle> 
          </DataGridTextColumn> 
         </DataGrid.Columns> 
        </DataGrid> 

しかし、それでもまだ、私は複数のチェックボックスを選択することができています。これを無効にする方法。 (チェックボックスを1つだけ選択したいのですが、次のチェックボックスを選択すると前のチェックボックスがオフになるはずです)

答えて

0

CheckBoxではなくRadioButtonを試してみてください。

<DataGridTemplateColumn.CellTemplate> <DataTemplate> <RadioButton GroupName="group1" Name="chkSelectUseCase" IsChecked="{Binding Path=IsSelected,Mode=TwoWay}" Click="chkSelectUseCase_Click"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate>

したい場合は、ラジオボタンのテンプレートをカスタマイズすることができます。

<Style TargetType="{x:Type RadioButton}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type RadioButton}"> <Grid> <CheckBox IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsChecked, Mode=TwoWay}" IsHitTestVisible="False" Content="{TemplateBinding Content}" /> <CheckBox IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsChecked, Mode=TwoWay}"
Content="{TemplateBinding Content}" Opacity="0"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>