我正在尝试检查一组CheckBoxes的绑定组是否等于我将Checkboxes列表设置为的绑定组的名称。
使用foreach循环,我可以在命名组框中找到子项“附件”。
在附件组框中,我有一个属于2个不同BindingGroup的复选框列表。
例如,在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'类型的操作数
如何引用复选框的绑定组,以便只更改那些特定的?
答案 0 :(得分:0)
BindingGroup
属性的类型为System.Windows.Data.BindingGroup
。检查MSDN页面,您应该能够查询它的Name
属性:
private void S5233_Checked(object sender, RoutedEventArgs e)
{
foreach (var c in Accessories.Children.OfType<CheckBox>())
{
if (c.BindingGroup.Name == "523S")
{
c.IsEnabled = true;
}
}
}