Xamarin.Forms Casilla

Ejemplo de descarga Descarga del ejemplo

es Xamarin.FormsCheckBox 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 , que indica si está IsCheckedCheckBox activada. Esta propiedad también está copiada por un objeto , lo que significa que se puede usar como estilo y ser el destino BindableProperty de los enlaces de datos.

Nota:

La propiedad enlazable tiene un modo de enlace predeterminado IsChecked de Xamarin_Forms IsChecked _BindingMode_TwoWay" data-linktype="absolute-path">BindingMode.TwoWay .

CheckBox define un evento que se desencadena cuando cambia la propiedad, ya sea mediante la manipulación del usuario o cuando una CheckedChanged aplicación establece la propiedad IsCheckedIsChecked . El CheckedChangedEventArgs objeto que acompaña al evento tiene una sola propiedad denominada , de tipo CheckedChangedValuebool . Cuando se desencadena el evento, el valor de la Value propiedad se establece en el nuevo valor de la propiedad IsChecked .

Creación de una casilla

En el ejemplo siguiente se muestra cómo crear instancias de CheckBox en XAML:

<CheckBox />

Este CÓDIGO XAML da como resultado la apariencia que se muestra en las capturas de pantalla siguientes:

Captura de pantalla de una casilla vacía en iOS y Android

De forma predeterminada, CheckBox está vacío. Se CheckBox puede comprobar mediante la manipulación del usuario o estableciendo la propiedad en IsCheckedtrue :

<CheckBox IsChecked="true" />

Este CÓDIGO XAML da como resultado la apariencia que se muestra en las capturas de pantalla siguientes:

Captura de pantalla de una casilla activada en iOS y Android

Como alternativa, se CheckBox puede crear un en el código:

CheckBox checkBox = new CheckBox { IsChecked = true };

Respuesta a un estado de cambio de CheckBox

Cuando cambia IsChecked la propiedad, ya sea a través de la manipulación del usuario o cuando una aplicación establece la IsChecked propiedad, se CheckedChanged produce el 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 del CheckedChanged evento:

void OnCheckBoxCheckedChanged(object sender, CheckedChangedEventArgs e)
{
    // Perform required operation after examining e.Value
}

El sender argumento es el responsable de este CheckBox evento. Puede usarlo para tener acceso al objeto o para distinguir entre CheckBox varios CheckBox objetos que comparten el mismo controlador CheckedChanged de eventos.

Como alternativa, un controlador de eventos para CheckedChanged el 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 de una casilla

El controlador de eventos se puede eliminar mediante el enlace de datos y los desencadenadores para CheckedChanged responder a un que se está CheckBox activando o vacío:

<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, usa Label una expresión de enlace en un desencadenador de datos para supervisar la propiedad de IsCheckedCheckBox . Cuando esta propiedad se convierte true en , las propiedades y del FontAttributesFontSizeLabel cambio. Cuando la IsChecked propiedad vuelve a , las propiedades y de se falseFontAttributesFontSizeLabel restablecen a su estado inicial.

En las capturas de pantalla siguientes, la captura de pantalla de iOS muestra el formato cuando está vacío, mientras que la captura de pantalla de Android muestra el formato LabelCheckBox cuando está LabelCheckBox activado:

a datos de una casilla enlazada a datosen iOS y AndroidData bound

Para obtener más información sobre los desencadenadores, vea Xamarin.Forms Triggers .

Deshabilitar una casilla

A veces, una aplicación entra en un estado en el que CheckBox una operación que se comprueba 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 heredan de la clase , también define CheckBox una propiedad que establece su color en ViewCheckBoxColorColor :

<CheckBox Color="Red" />

En las capturas de pantalla siguientes se muestra una serie de objetos activados, donde cada objeto tiene CheckBox su propiedad establecida en una ColorColor diferente:

Captura de pantalla de cuadros de verificación coloreados en iOS y Android

Estados visuales de CheckBox

CheckBoxtiene un IsCheckedVisualState que se puede usar para iniciar un cambio visual en cuando CheckBox se comprueba.

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 que cuando se comprueba IsCheckedVisualState , su propiedad se CheckBoxColor establecerá en verde. especifica NormalVisualState que cuando el objeto está en un CheckBox estado normal, su propiedad se Color establecerá en rojo. Por lo tanto, el efecto general es que está rojo cuando está vacío CheckBox y verde cuando se comprueba.

Para obtener más información sobre los estados visuales, vea Xamarin.Forms Visual State Manager .