-3

我正在从数据库中获取复选框的数据。

<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)且标签内容=“Lucie”的复选框。

您能否为此提供示例代码?

谢谢

4

1 回答 1

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,但我认为一点点谷歌搜索会对您有所帮助。

于 2012-11-20T14:39:43.757 回答