根据条件选中复选框-WPF

根据条件选中复选框-WPF,wpf,silverlight,Wpf,Silverlight,我正在从数据库中获取复选框的数据 <stackPanel Name="StudentDetails"> <checkBox Name="Left" Content="(M)" Unchecked="CheckBoxUnChecked" Checked="CheckBoxChecked" /> <checkBox Name="Left" Content="(F)" Unchecked="CheckBoxUnChecked" Checked="CheckBoxC

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

<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>

如果我选中content=(M)且having Label content=“Sam”的复选框,我想选中content=(F)且having Label content=“Lucie”的其他复选框

你能给我提供这个的示例代码吗


谢谢

复选框不应该有相同的名称

您需要绑定和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>

此外,您还需要在XAML的资源中公开StudentCheckedConverter,但我认为稍微搜索一下Google会对您有所帮助。

您的问题还不清楚。你需要做什么?此外,不要在WPF中使用基于事件的编程。删除选中和未选中的事件处理程序,并将复选框的
IsChecked
属性绑定到模型或ViewModel中的数据状态布尔属性。当我从数据库获取数据时,它将显示在屏幕上:仍然不清楚。在什么情况下会选中复选框?在什么情况下标签会改变?我不明白你在说什么。(M)(F)萨姆(M)(F)露西(M)(F)罗伯等等。。。。现在,当我为Sam检查(M)时,它还应该检查(F)Lucie.WPF不是Silverlight。。。你是什么意思?您在代码中列出了两个EventHandler,但没有包含它们的定义—它们的用途是什么?此外,您的Xaml正在将数据硬编码到复选框中,因此不清楚数据库与问题的相关性。最后:您真的希望将两个复选框设置为相同的值
IsChecked
?让我解释得更清楚一点:我在运行时使用数据库值检查复选框。现在,当用户点击“男性”-“山姆”复选框时,我想自动选中“女性”-“露西”复选框。一种方法是使用checkbox的Tag属性。我们能想出如何使用Tag属性完成相同的任务吗?不要使用Tag属性。如果您想在用户单击其中一个框时选中这两个框,可以尝试在这两个框之间使用触发器或数据绑定。
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();
        }
}