如何确定复选框的已检查状态

时间:2013-12-30 01:39:21

标签: c# xaml windows-phone-7 checkbox windows-phone-8

我在页面中有一个复选框。我不确定我应该使用哪个事件来检查已检查状态。我需要确定复选框是选中还是取消选中。适当的方法是什么?我在研究中看到Checkbox实际上有三种状态;选中,未选中和不确定。这让我感到困惑,因为看起来用户只会发生两种状态。从用户的角度来看,Checkbox将是Checked或Unchecked,但从我的角度来看,我如何处理这三种状态呢?我理解正确吗?另外,我应该使用什么事件?其他考虑因素?

基本上我要做的是询问用户是否要在WP8的新地图控件上显示地标。如果是这样,我需要保存此设置,并且我将限制地图的缩放(我将在另一个区域中进行)。我只需要从复选框控件中确定用户的偏好并保存他或她的设置。到目前为止,我所拥有的内容如下:

<CheckBox x:Name="LandmarksEnabledCheckBox" Checked="LandmarksEnabledCheckBox_Checked">
                        <CheckBox.Content>
                            <TextBlock Text="{Binding Path=LocalizedResources.SettingsPage_LandmarksEnabled, Source={StaticResource LocalizedStrings}}"  TextWrapping="Wrap"/>
                        </CheckBox.Content>
                    </CheckBox>

private void LandmarksEnabledCheckBox_Checked(object sender, RoutedEventArgs e)
    {
        //If CheckBox is checked, set `Settings.LandmarksEnabled.Value = true`, otherwise false
        //??
    }

5 个答案:

答案 0 :(得分:2)

CheckBox具有IsChecked属性,这是一个可以为空的bool,换句话说

bool?

你可以检查一下CheckBox是否有值,如果有,请把它拿来并比较为true或false。

if (LandmarksEnabledCheckBox.IsChecked.HasValue)
{
    if (LandmarksEnabledCheckBox.IsChecked.Value == true)
    {
        //checkbox is checked
    }
    else
    {
        //checkbox is not checked
    }
}

答案 1 :(得分:1)

CheckBox是WPF中的ToggleButton。因此,它们具有IsChecked属性。

if (checkBox.IsChecked)

答案 2 :(得分:0)

if (checkBox.Checked)
{
  //Do stuff
}

答案 3 :(得分:0)

  bool check = Boolean.Parse(LandmarksEnabledCheckBox.IsChecked.ToString());
  if (check)
   {

   }

答案 4 :(得分:0)

非常简单

bool SuperAdmin = Convert.ToBoolean(chkbx_SuperAdmin.CheckState);

它将为您提供复选框的当前状态。 谢谢