繁体   English   中英

如何在 label 中显示两个复选框的结果,在 WPF 中检查哪一个,甚至两者都在检查?

[英]how can i display the result of two checkboxes in a label, which one is being checked or even both are being checked in a WPF?

非常感谢您的帮助。 我是编程界的新手,所以我真的需要你的帮助!

问题是:

我有两个复选框和一个 label,通过选中 label 应该显示的每个复选框,其中一个正在被选中。 如果两者都被检查,label 应该显示两者都被检查,但在两行。 如果未勾选,则应清除 label 中自己的相关句子而不是全文。

我的 XML:

<Grid HorizontalAlignment="Center" 
          VerticalAlignment="Center">
        <StackPanel Width="350">
            <CheckBox x:Name="CheckboxOne" 
                      Content="First Checkbox"
                      Checked="FirstCheckbox"
                      Unchecked="UncheckedOne"/>
            <CheckBox x:Name="CheckboxTwo" 
                      Content="Second Checkbox"
                      Checked="SecondCheckbox"
                      Unchecked="UncheckedTwo"/>
            <Label Name="LabelText"
               Height="70"
               Grid.Column="1"/>

        </StackPanel>
    </Grid>

我的 C#

private void FirstCheckbox(object sender, RoutedEventArgs e)
{
    if (CheckboxOne.IsChecked == true)
    {
        LabelText.Content += "First checkbox is being checked";
    }

}
private void SecondCheckbox(object sender, RoutedEventArgs e)
{
    if (CheckboxTwo.IsChecked == true)
    {
        LabelText.Content += "Second checkbox is being checked";
    } 
}
private void UncheckedOne(object sender, RoutedEventArgs e)
{
    if (CheckboxOne.IsChecked == false)
    {
        LabelText.Content = "";
    }
}
private void UncheckedTwo(object sender, RoutedEventArgs e)
{
    if (CheckboxTwo.IsChecked == false)
    {
        LabelText.Content = "";          
    }
}

我的期望之一应该是这样,以防两者都被检查!

正在检查第一个复选框

正在检查第二个复选框

非常感谢您的帮助!

以下代码应该做你想做的事:

    private void FirstCheckbox(object sender, RoutedEventArgs e)
    {
        MakeLable();
    }
    private void SecondCheckbox(object sender, RoutedEventArgs e)
    {
        MakeLable();
    }
    private void UncheckedOne(object sender, RoutedEventArgs e)
    {
        MakeLable();
    }
    private void UncheckedTwo(object sender, RoutedEventArgs e)
    {
        MakeLable();
    }
    private void MakeLable()
    {
        if (CheckboxOne.IsChecked && CheckboxTwo.IsChecked)
        {
            LabelText.Content = $"First checkbox is being checked{Environment.NewLine}Second checkbox is being checked";
        }
        else if (CheckboxOne.IsChecked && !CheckboxTwo.IsChecked)
        {
            LabelText.Content = "First checkbox is being checked";
        }
        else if (!CheckboxOne.IsChecked && CheckboxTwo.IsChecked)
        {
            LabelText.Content = "Second checkbox is being checked";
        }
        else
        {
            LabelText.Content = "";
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM