[英]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.