我从数据库中获取复选框的数据。
<stackPanel Name="StudentDetails">
<checkBox Name="Left" Content="(M)" Unchecked="CheckBoxUnChecked" Checked="CheckBoxChecked" />
<checkBox Name="Left" Content="(F)" Unchecked="CheckBoxUnChecked" Checked="CheckBoxChecked" />
<Label Content="{Binding Path=Student.Name}" />
</stackPanel>
如果我选中内容=(M)且标签内容=“Sam”的复选框,我想检查内容=(F)并且标签内容=“露西”的其他复选框。
您能为我提供示例代码吗?
由于
答案 0 :(得分:0)
复选框名称不应相同。
您需要绑定和IValueConverter:
<stackPanel Name="StudentDetails">
<checkBox Name="Left"
Content="(M)"
IsChecked="{Binding Student.Name, Converter={StaticResource StudentCheckedConverter}, ConverterParameter="M"}" />
<checkBox Name="Left"
Content="(F)"
IsChecked="{Binding Student.Name, Converter={StaticResource StudentCheckedConverter}, ConverterParameter="F"}" />
<Label Content="{Binding Student.Name}" />
</stackPanel>
IValueConverter看起来像:
public class StudentCheckedConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ("M".Equals(parameter))
return "Sam".Equals(value);
if ("F".Equals(parameter))
return "Lucie".Equals(value);
throw new Exception("Unknown parameter or value");
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
另外,你需要在XAML的资源中公开StudentCheckedConverter,但我觉得有点谷歌搜索会对你有所帮助。