I have WPF data grid which contain two rows with checkboxes:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<DataGrid VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
Name="dsGrid"
AutoGenerateColumns="False" Grid.Column="1" >
<DataGrid.Columns>
<DataGridTextColumn Header="Properties Name" MinWidth="150" Binding="{Binding Propertie}" />
<DataGridTemplateColumn Header=" Server " MinWidth="150" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="PropertiesTextBlock"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Text="{Binding Server}"
Grid.Column="1"/>
<CheckBox IsChecked="{Binding Path=IsServerSelected, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
Checked="Server_Checked"
VerticalAlignment="Center"
HorizontalAlignment="Left"
Visibility="{Binding Equal,
Converter={StaticResource BoolToVisibility},FallbackValue=Hidden}"
Grid.Column="0"/>
</Grid>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header=" Local " MinWidth="150">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Name="PropertiesTextBlock"
HorizontalAlignment="Right"
Text="{Binding Local}"
Grid.Column="1"/>
<CheckBox IsChecked="{Binding Path=IsLocalSelected, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
Checked="Local_Checked" HorizontalAlignment="Left"
Visibility="{Binding Equal, Converter={StaticResource BoolToVisibility},FallbackValue=Hidden}" Grid.Column="0"></CheckBox>
</Grid>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<ListBox HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Name="Entities_List"
SelectionChanged="Entities_List_SelectionChanged"
SelectionMode="Single"
Grid.Column="0"/>
<Button Content="Merge"
Name="Merge_Button"
Click="Merge_Button_Click"
HorizontalAlignment="Stretch"
VerticalAlignment="Bottom"
Grid.Column="0" />
</Grid>
DataContext ViewModel:
public string Server { get; set; }
public string Local { get; set; }
private bool _pIsServerSelected;
private bool _pIsLocalSelected;
public bool IsLocalSelected
{
get
{
return _pIsLocalSelected;
}
set
{
_pIsLocalSelected = value;
OnPropertyChanged("IsSelected");
}
}
public bool IsServerSelected
{
get
{
return _pIsServerSelected;
}
set
{
_pIsServerSelected = value;
OnPropertyChanged("IsSelected");
}
}
My needs are to ensure, that only one Checkbox is checked at a time. So if the ServerCheckBox gets checked I want to uncheck the LocalCheckBox.