Как я могу отобразить результат двух флажков в метке, который проверяется или даже оба проверяются в WPF? - PullRequest
0 голосов
/ 05 апреля 2020

большое спасибо за вашу помощь. Я совершенно новый парень в мире программирования, поэтому мне очень нужна твоя рука!

Проблема в том, что:

У меня есть два флажка и один ярлык, проверяя каждый флажок, который должен отображать ярлык , который проверяется. если оба проверяются, метка должна отображать оба проверенных, но в две строки. если флажок снят, следует очистить свое собственное соответствующее предложение, но не все тексты в ярлыке.

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

MY 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 = "";          
    }
}

одно из моих ожиданий должно быть таким, в случае, если проверяются оба!

Проверяется первый флажок

Проверяется второй флажок

большое спасибо за ваше помощь!

1 Ответ

1 голос
/ 05 апреля 2020

Следующий код должен делать то, что вы хотите:

    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 = "";
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...