Je ne parle pas d'un gestionnaire d'événements pour cela, mais plutôt d'un simple If Statement
vérifier si le CheckBox
a été vérifié. Jusqu'à présent, j'ai:
if (chkRevLoop.IsChecked == true){}
Mais cela soulève l'erreur:
Impossible de convertir implicitement le type 'bool?' à "bool". Il existe une conversion explicite (il vous manque une distribution?)
Existe-t-il un moyen de faire cela qui me manque?
Vous pouvez utiliser opérateur de coalescence nul . Cet opérateur renvoie l'opérande de droite si l'opérande de gauche est nul. Vous pouvez donc retourner false
lorsque le CheckBox
est indéterminé état (lorsque le La valeur de la propriété IsChecked
est définie sur null):
if (chkRevLoop.IsChecked ?? false)
{
}
Vous devez effectuer cette conversion à partir de bool?
à bool
, pour le faire fonctionner:
if((bool)(chkRevLoop.IsChecked)){}
Puisqu'il s'agit déjà d'une condition bool
, vous n'avez pas besoin de mettre true false car si elle est vraie, seule cette condition entrera dans cette condition if sinon. donc pas besoin de mettre chkRevLoop.IsChecked == true
ici, vous demandez par défaut ==true
par puttin IsChecked
Déjà plusieurs réponses mais voici une autre alternative
if (chkRevLoop.IsChecked.GetValueOrDefault()) {}
De MSDN
Pensez à vérifier si la propriété a une valeur:
var isChecked = chkRevLoop.IsChecked.HasValue ? chkRevLoop.IsChecked : false;
if (isChecked == true){}
UNE bool?
peut être vrai, faux ou nul, tandis que bool
ne peut être vrai ou faux. ?
rend le type "nullable" et ajoute null comme possibilité alors qu'il ne l'est normalement pas, vous pouvez donc probablement simplement utiliser
if ((bool)chkRevLoop.IsChecked == true){}
ou
if (chkRevLoop.IsChecked == (bool?)true){}
pour le faire correspondre et travailler. La seconde est probablement meilleure, car je ne sais pas ce qui se passerait dans le casting si IsChecked est nul
IsChecked
la propriété de CheckBox est booléenne Nullable.
public bool? IsChecked { get; set; }
Créez un booléen Nullable et égalisez cela fonctionnera pour vous.
bool? NullableBool = chkRevLoop.IsChecked;
if(NullableBool == true)
{
}
Une ligne suffit pour vérifier si le bouton radio est coché ou non:
string status = Convert.ToBoolean(RadioButton.IsChecked) ? "Checked" : "Not Checked";
Vous devez utiliser un objet Nullable. Parce que la propriété IsChecked peut être affectée à trois valeurs différentes: Null, true et false
Nullable<bool> isChecked = new Nullable<bool>();
isChecked = chkRevLoop.IsChecked;
if (isChecked.HasValue && isChecked.Value)
{
}