作成日: 2015/08/17 最終更新日: 2015/08/17
文書種別
使用方法
詳細
DataGridTemplateColumnのCheckBoxを使用したC1DataGridで、1行のみチェックを許可する(チェックした行以外のチェックを外す)場合、サンプルコードのようにCheckBoxのCheckedイベントにてCheckBoxを制御する処理を実装します。
◎サンプルコード(XAML)
◎サンプルコード(Visual Basic)
◎サンプルコード(C#)
◎サンプルコード(XAML)
<c1:DataGridTemplateColumn Header="Check" Width="100">
<c1:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Check, Mode=TwoWay}" VerticalAlignment="Center"
HorizontalAlignment="Center" Checked="CheckBox_Checked"/>
</DataTemplate>
</c1:DataGridTemplateColumn.CellTemplate>
</c1:DataGridTemplateColumn>
<c1:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Check, Mode=TwoWay}" VerticalAlignment="Center"
HorizontalAlignment="Center" Checked="CheckBox_Checked"/>
</DataTemplate>
</c1:DataGridTemplateColumn.CellTemplate>
</c1:DataGridTemplateColumn>
◎サンプルコード(Visual Basic)
Private Sub CheckBox_Checked(sender As Object, e As RoutedEventArgs)
Dim checkBox1 As CheckBox = sender
Dim presenter As C1.WPF.DataGrid.DataGridCellPresenter = checkBox1.Parent
Dim rowIndex As Integer = presenter.Row.Index
For i As Integer = 0 To c1DataGrid.Rows.Count - 1
If rowIndex <> i And Not IsNothing(c1DataGrid.GetCell(i, 0).Presenter) Then
Dim checkBox2 As CheckBox = c1DataGrid.GetCell(i, 0).Presenter.Content
checkBox2.IsChecked = False
End If
Next
End Sub
Dim checkBox1 As CheckBox = sender
Dim presenter As C1.WPF.DataGrid.DataGridCellPresenter = checkBox1.Parent
Dim rowIndex As Integer = presenter.Row.Index
For i As Integer = 0 To c1DataGrid.Rows.Count - 1
If rowIndex <> i And Not IsNothing(c1DataGrid.GetCell(i, 0).Presenter) Then
Dim checkBox2 As CheckBox = c1DataGrid.GetCell(i, 0).Presenter.Content
checkBox2.IsChecked = False
End If
Next
End Sub
◎サンプルコード(C#)
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
int rowIndex = ((C1.WPF.DataGrid.DataGridCellPresenter)((sender as CheckBox).Parent)).Row.Index;
for (int i = 0; i < c1DataGrid.Rows.Count; i++)
{
if (rowIndex != i && c1DataGrid.GetCell(i, 0).Presenter != null)
(c1DataGrid.GetCell(i, 0).Presenter.Content as CheckBox).IsChecked = false;
}
}
{
int rowIndex = ((C1.WPF.DataGrid.DataGridCellPresenter)((sender as CheckBox).Parent)).Row.Index;
for (int i = 0; i < c1DataGrid.Rows.Count; i++)
{
if (rowIndex != i && c1DataGrid.GetCell(i, 0).Presenter != null)
(c1DataGrid.GetCell(i, 0).Presenter.Content as CheckBox).IsChecked = false;
}
}
旧文書番号
81429