チェックボックスのセットのバインディング グループが、チェックボックスのリストを設定したバインディング グループの名前と等しいかどうかを確認しようとしています。
foreach ループを使用すると、"Accessories" という名前のグループ ボックスで子を見つけることができます。
Accessories グループボックス内に、2 つの異なる BindingGroups に属するチェックボックスのリストがあります。
たとえば、xaml には次のようなものがあります。
<CheckBox Name="AccessoriesSpareBattery"
BindingGroup="523S"
HorizontalAlignment="Left" Margin="71,117,0,0" VerticalAlignment="Top"
Checked="AccessoriesSpareBattery_Checked">
<TextBlock TextWrapping="Wrap" Text="Spare Battery"/>
</CheckBox>
グループボックスには全部で 5 つのアクセサリがあり、それぞれのバインディング グループは「5233」または「523S」に設定されています。
そしてコードで:
private void S5233_Checked(object sender, RoutedEventArgs e)
{
foreach (var c in Accessories.Children.OfType<CheckBox>())
{
if (c.BindingGroup == "523S")
{
c.IsEnabled = true;
}
}
}
このコード ブロックは、アクセサリ グループボックスの各チェックボックスを通過します。ただし、ビルドしようとすると、if ステートメントで次のエラーが表示されます。
エラー CS0019: 演算子 '==' は、タイプ 'System.Windows.Data.BindingGroup' および 'string' のオペランドに適用できません
特定のチェックボックスのみが変更されるように、チェックボックスのバインディング グループを参照するにはどうすればよいですか?