C# 如何在wpf c中实现复选框的反转选择

C# 如何在wpf c中实现复选框的反转选择,c#,wpf,C#,Wpf,是否可以在WPF中反向选择复选框? 例如:如果有3个复选框A、B、C,复选框A和C被选中,而B被取消选中。 如果我点击按钮进行反向选择,那么A和C应该被取消选中,B应该被选中,如图2所示 stk.Children.Add(new CheckBox()); 编辑: 通过添加要动态创建复选框的信息,我建议您使用以下XAML代码: <StackPanel Name="stk"> <!-- Add checkbo

是否可以在WPF中反向选择复选框? 例如:如果有3个复选框A、B、C,复选框A和C被选中,而B被取消选中。 如果我点击按钮进行反向选择,那么A和C应该被取消选中,B应该被选中,如图2所示

stk.Children.Add(new CheckBox());
编辑: 通过添加要动态创建复选框的信息,我建议您使用以下XAML代码:

        <StackPanel Name="stk">                
            <!-- Add checkboxes dynamically to this stackpanel -->
            <Button Click="Button_Click">Invert</Button>
        </StackPanel>
stk.Children.Add(new CheckBox());
或者简单地说:

stk.Children.Add(new CheckBox());
 private void btnInvert_Click(object sender, RoutedEventArgs e)
    {
        if (CB1.IsChecked == true && CB3.IsChecked == true)
        {
            CB2.IsChecked = true;
            CB1.IsChecked = false;
            CB3.IsChecked = false;
        }
    }
根据您的要求

stk.Children.Add(new CheckBox());
if (CB1.IsChecked == true && CB3.IsChecked == true&& CB2.IsChecked== false)
        {
            CB2.IsChecked = true;
            CB1.IsChecked = false;
            CB3.IsChecked = false;
        }
        else
        {
            CB2.IsChecked = false;
            CB1.IsChecked = true;
            CB3.IsChecked = true;
        }

当遵循MVVM模式时,这在viewmodel中很容易实现。你尝试了什么?你在哪里挣扎?你是在使用MVVM还是在代码背后编程?我不是在使用MVVM复选框,而是动态加载的。我不知道有多少复选框将被编辑我的答案与动态数量的复选框一起工作你可以使用CB2.IsChecked=!CB2.IsChecked,这将使用更少的代码反转值,但他希望使用动态数量的checkboxesYeah,当然我们可以动态使用,但通过静态执行,我们能够实现逻辑,如果检查a和C,则无论检查或取消检查B,它将选中B,取消选中A和B。如果A或C中的任何一个或两者都未选中,那么它将同时选中A和C,取消选中B。他想独立于当前状态翻转选择,而不仅仅是在他描述的确切逻辑匹配的情况下