No estoy hablando de un controlador de eventos para esto, sino de una If Statement
simple que verifica si CheckBox
ha sido marcado. Hasta ahora tengo:
if (chkRevLoop.IsChecked == true){}
Pero eso plantea el error:
No se puede convertir implícitamente el tipo 'bool?' a 'bool'. Existe una conversión explícita (¿falta un reparto?)
¿Hay alguna manera de hacer esto que me estoy perdiendo?
Puede usar el operador de fusión nulo . Este operador devuelve el operando de la derecha si el operando de la izquierda es nulo. Por lo tanto, puede devolver false
cuando CheckBox
está en un estado indeterminado (cuando el valor de la propiedad IsChecked
se establece en nulo):
if (chkRevLoop.IsChecked ?? false) { }
¿Tienes que hacer esta conversión desde bool?
to bool
, para que funcione:
if((bool)(chkRevLoop.IsChecked)){}
Dado que ya es una condición bool
, no es necesario poner verdadero falso porque si es verdadero, solo aparecerá dentro de esta condición si no lo es. por lo tanto, ni siquiera es necesario poner chkRevLoop.IsChecked == true
aquí, por defecto está preguntando ==true
al IsChecked