Xamarin.Forms Casilla
Xamarin.FormsCheckBox
es un tipo de botón que se puede comprobar o vaciar. Cuando se activa una casilla, se considera que está activada. Cuando una casilla está vacía, se considera desactivada.
CheckBox
define una bool
propiedad denominada IsChecked
, que indica si CheckBox
está activada. Esta propiedad también está respaldada por un BindableProperty
objeto , lo que significa que se puede aplicar estilo y ser el destino de los enlaces de datos.
Nota
La IsChecked
propiedad enlazable tiene un modo de enlace predeterminado de BindingMode.TwoWay
.
CheckBox
define un CheckedChanged
evento que se desencadena cuando cambia la IsChecked
propiedad, ya sea a través de la manipulación del usuario o cuando una aplicación establece la IsChecked
propiedad. El CheckedChangedEventArgs
objeto que acompaña al CheckedChanged
evento tiene una sola propiedad denominada Value
, de tipo bool
. Cuando se desencadena el evento, el valor de la Value
propiedad se establece en el nuevo valor de la IsChecked
propiedad.
Crear una casilla
En el ejemplo siguiente se muestra cómo crear una instancia de en CheckBox
XAML:
<CheckBox />
Este XAML da como resultado la apariencia que se muestra en las capturas de pantalla siguientes:
De forma predeterminada, está CheckBox
vacío. Puede CheckBox
comprobarse mediante la manipulación del usuario o estableciendo la IsChecked
propiedad en true
:
<CheckBox IsChecked="true" />
Este XAML da como resultado la apariencia que se muestra en las capturas de pantalla siguientes:
Como alternativa, se puede crear un objeto CheckBox
en el código:
CheckBox checkBox = new CheckBox { IsChecked = true };
Responder a un estado de cambio de CheckBox
Cuando cambia la IsChecked
propiedad, ya sea a través de la manipulación del usuario o cuando una aplicación establece la IsChecked
propiedad, se desencadena el CheckedChanged
evento. Se puede registrar un controlador de eventos para este evento para responder al cambio:
<CheckBox CheckedChanged="OnCheckBoxCheckedChanged" />
El archivo de código subyacente contiene el controlador para el CheckedChanged
evento:
void OnCheckBoxCheckedChanged(object sender, CheckedChangedEventArgs e)
{
// Perform required operation after examining e.Value
}
El sender
argumento es el CheckBox
responsable de este evento. Puede usarlo para tener acceso al CheckBox
objeto o para distinguir entre varios CheckBox
objetos que comparten el mismo CheckedChanged
controlador de eventos.
Como alternativa, un controlador de eventos para el CheckedChanged
evento se puede registrar en el código:
CheckBox checkBox = new CheckBox { ... };
checkBox.CheckedChanged += (sender, e) =>
{
// Perform required operation after examining e.Value
};
Enlace de datos a checkBox
El CheckedChanged
controlador de eventos se puede eliminar mediante el enlace de datos y los desencadenadores para responder a una CheckBox
comprobación o vacía:
<CheckBox x:Name="checkBox" />
<Label Text="Lorem ipsum dolor sit amet, elit rutrum, enim hendrerit augue vitae praesent sed non, lorem aenean quis praesent pede.">
<Label.Triggers>
<DataTrigger TargetType="Label"
Binding="{Binding Source={x:Reference checkBox}, Path=IsChecked}"
Value="true">
<Setter Property="FontAttributes"
Value="Italic, Bold" />
<Setter Property="FontSize"
Value="Large" />
</DataTrigger>
</Label.Triggers>
</Label>
En este ejemplo, Label
usa una expresión de enlace en un desencadenador de datos para supervisar la IsChecked
propiedad de CheckBox
. Cuando esta propiedad se convierte en true
, las FontAttributes
propiedades y FontSize
del Label
cambio. Cuando la IsChecked
propiedad vuelve a false
, las FontAttributes
propiedades y FontSize
de Label
se restablecen a su estado inicial.
En las capturas de pantalla siguientes, la captura de pantalla de iOS muestra el Label
formato cuando CheckBox
está vacío, mientras que la captura de pantalla de Android muestra el Label
formato cuando CheckBox
se activa:
Para obtener más información sobre los desencadenadores, consulte Xamarin.Forms Desencadenadores.
Deshabilitar una casilla
A veces, una aplicación entra en un estado en el que una CheckBox
comprobación no es una operación válida. En tales casos, se puede deshabilitar el objeto CheckBox
estableciendo su propiedad IsEnabled
en false
.
apariencia de CheckBox
Además de las propiedades que CheckBox
heredan de la View
clase , CheckBox
también define una Color
propiedad que establece su color en un Color
:
<CheckBox Color="Red" />
Las capturas de pantalla siguientes muestran una serie de objetos comprobados CheckBox
, donde cada objeto tiene su Color
propiedad establecida en un objeto diferente Color
:
Estados visuales de CheckBox
CheckBox
tiene un IsChecked
VisualState
objeto que se puede usar para iniciar un cambio visual en cuando CheckBox
se activa.
En el ejemplo XAML siguiente se muestra cómo definir un estado visual para el IsChecked
estado:
<CheckBox ...>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<VisualState.Setters>
<Setter Property="Color"
Value="Red" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="IsChecked">
<VisualState.Setters>
<Setter Property="Color"
Value="Green" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</CheckBox>
En este ejemplo, especifica IsChecked
VisualState
que, cuando CheckBox
está activada, su Color
propiedad se establecerá en verde. Normal
VisualState
especifica que cuando CheckBox
el objeto está en un estado normal, su Color
propiedad se establecerá en rojo. Por lo tanto, el efecto general es que CheckBox
es rojo cuando está vacío y verde cuando está activado.
Para obtener más información sobre los estados visuales, vea Administrador de estado visual de Xamarin.Forms.