Xamarin.Forms Casilla

Download Sample Descargar el ejemplo

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:

Screenshot of an empty Checkbox, on iOS and Android

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:

Screenshot of a checked Checkbox, on iOS and Android

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:

Screenshot of a data bound CheckBox, on iOS and Android

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:

Screenshot of colored CheckBoxes, on iOS and Android

Estados visuales de CheckBox

CheckBox tiene un IsCheckedVisualState 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 IsCheckedVisualState que, cuando CheckBox está activada, su Color propiedad se establecerá en verde. NormalVisualState 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.