【问题标题】:XAML WPF CheckBox ValidationXAML WPF 复选框验证
【发布时间】:2016-07-21 17:25:20
【问题描述】:

我有一个CheckBox'es 的列表。我希望用户在单击下一步按钮之前至少选择一个。

我希望Button 保留Enabled,但在CheckBox 下方使用TextBlock 以显示提示以选择至少一个CheckBox

我该如何检查。

代码:

XAML

<CheckBox x:Name="CheckBox1"  Content="CheckBox1" />
<CheckBox x:Name="CheckBox2"  Content="CheckBox2" />
<CheckBox x:Name="CheckBox3"  Content="CheckBox3" />
<CheckBox x:Name="CheckBox4"  Content="CheckBox4" />

<Button x:Name="NextButton" Click="NextButton_Click"/>

代码背后

private void NextButton_Click(object sender, RoutedEventArgs e) {
    if (CheckBox1.IsChecked ?? false) {
        // do something
    }
   // same for other checkBoxes
}

【问题讨论】:

标签: c# wpf xaml checkbox


【解决方案1】:
private void NextButton_Click(object sender, RoutedEventArgs e) 
{
    if (!CheckBox1.IsChecked && !CheckBox2.IsChecked && !CheckBox3.IsChecked && !CheckBox4.IsChecked)
    {
        // update TextBlock to alert the user 
    }
    else 
    {
        if (CheckBox1.IsChecked) 
        {
            // do something
        }
       // same for other checkboxes
    }
}

【讨论】:

    【解决方案2】:

    您还可以根据CheckBox 的示例执行以下操作:

    XAML

    <CheckBox x:Name="CheckBox1"  Content="CheckBox1" Checked="CheckBox1_OnChecked"/>
    // after all your CheckBoxes insert TextBlock below
    // which is Visible by default (but invisible once any CheckBox is checked)
    <TextBlock x:Name="TextBlock" Visibility="Visible" Text="Please, select at least 1 checkbox"/>
    <Button x:Name="NextButton" Click="NextButton_Click" Height="Auto" Width="Auto" Content="Button"/>
    

    代码背后

    private void NextButton_Click(object sender, RoutedEventArgs e)
    {
        // your code
    }
    
    // We make Visibility of TextBox hidden
    // Think for yourself how to take into account
    // several CheckBoxes checked vs unchecked
    private void CheckBox1_OnChecked(object sender, RoutedEventArgs e)
    {
        TextBlock.Visibility = Visibility.Hidden;
    }
    

    自己想想如何考虑多个 CheckBox 已选中和未选中,您也可以使用 CheckBoxes 事件处理程序来处理 Unchecked 事件:Unchecked="CheckBox1_OnUnchecked"

    【讨论】:

      猜你喜欢
      • 2015-08-29
      • 1970-01-01
      • 2019-03-04
      • 2014-10-15
      • 2013-04-19
      • 2012-03-03
      • 2011-10-11
      相关资源
      最近更新 更多