Udostępnij za pośrednictwem


Xamarin.Forms Checkbox

Jest Xamarin.FormsCheckBox to typ przycisku, który można zaznaczyć lub opróżnić. Po zaznaczeniu pola wyboru jest ono uznawane za włączone. Jeśli pole wyboru jest puste, uważa się, że jest wyłączone.

CheckBoxbool definiuje właściwość o nazwie IsChecked, która wskazuje, czy CheckBox element jest sprawdzany. Ta właściwość jest również wspierana BindableProperty przez obiekt, co oznacza, że można go stylizować i być obiektem docelowym powiązań danych.

Uwaga

Właściwość IsChecked bindable ma domyślny tryb BindingMode.TwoWaypowiązania .

CheckBoxCheckedChanged Definiuje zdarzenie, które jest wyzwalane, gdy IsChecked właściwość zmienia się za pomocą manipulowania użytkownikami lub ustawiania właściwości przez aplikacjęIsChecked. Obiekt CheckedChangedEventArgs , który towarzyszy CheckedChanged zdarzeniu ma jedną właściwość o nazwie Value, typu bool. Gdy zdarzenie zostanie wyzwolone, wartość Value właściwości zostanie ustawiona na nową wartość IsChecked właściwości.

Tworzenie pola wyboru

W poniższym przykładzie pokazano, jak utworzyć wystąpienie elementu CheckBox w języku XAML:

<CheckBox />

Ten kod XAML powoduje wyświetlenie wyglądu pokazanego na poniższych zrzutach ekranu:

Zrzut ekranu przedstawiający puste pole wyboru w systemach iOS i Android

Domyślnie element CheckBox jest pusty. Można CheckBox to sprawdzić przez manipulowanie użytkownikami lub przez ustawienie IsChecked właściwości na true:

<CheckBox IsChecked="true" />

Ten kod XAML powoduje wyświetlenie wyglądu pokazanego na poniższych zrzutach ekranu:

Zrzut ekranu przedstawiający zaznaczone pole wyboru w systemach iOS i Android

Alternatywnie można utworzyć element CheckBox w kodzie:

CheckBox checkBox = new CheckBox { IsChecked = true };

Odpowiadanie na stan zmiany checkbox

IsChecked Gdy właściwość ulegnie zmianie, za pomocą manipulacji użytkownika lub gdy aplikacja ustawia IsChecked właściwość, CheckedChanged zdarzenie jest uruchamiane. Program obsługi zdarzeń dla tego zdarzenia można zarejestrować w celu reagowania na zmianę:

<CheckBox CheckedChanged="OnCheckBoxCheckedChanged" />

Plik związany z kodem zawiera procedurę obsługi zdarzenia CheckedChanged :

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

Argument sender jest CheckBox odpowiedzialny za to zdarzenie. Można go użyć, aby uzyskać dostęp do CheckBox obiektu lub rozróżnić wiele CheckBox obiektów współużytkowania tego samego CheckedChanged programu obsługi zdarzeń.

Alternatywnie program obsługi zdarzeń dla CheckedChanged zdarzenia można zarejestrować w kodzie:

CheckBox checkBox = new CheckBox { ... };
checkBox.CheckedChanged += (sender, e) =>
{
    // Perform required operation after examining e.Value
};

Powiązywanie danych z polem kontrolnym

Program CheckedChanged obsługi zdarzeń można wyeliminować za pomocą powiązania danych i wyzwalaczy w celu reagowania na CheckBox sprawdzane lub puste:

<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>

W tym przykładzie Label użyto wyrażenia powiązania w wyzwalaczu danych, aby monitorować IsChecked właściwość CheckBox. Gdy ta właściwość stanie się truewłaściwością FontAttributes , właściwości i FontSizeLabel zmiany. IsChecked Gdy właściwość powróci do falsewłaściwości , FontAttributes właściwości Label i FontSize są resetowane do ich stanu początkowego.

Na poniższych zrzutach ekranu zrzut ekranu systemu iOS przedstawia Label formatowanie, gdy CheckBox pole jest puste, podczas gdy zrzut ekranu systemu Android pokazuje Label formatowanie po CheckBox zaznaczeniu:

Zrzut ekranu przedstawiający powiązaną skrzynkę kontrolną danych w systemach iOS i Android

Aby uzyskać więcej informacji na temat wyzwalaczy, zobacz Xamarin.Forms Wyzwalacze.

Wyłączanie pola wyboru

Czasami aplikacja wprowadza stan, w którym CheckBox sprawdzanie nie jest prawidłową operacją. W takich przypadkach właściwość można wyłączyć, CheckBox ustawiając jej IsEnabled właściwość na false.

Wygląd pola wyboru

Oprócz właściwości, które CheckBox dziedziczą z View klasy, CheckBox definiuje Color również właściwość, która ustawia jej kolor na wartość Color:

<CheckBox Color="Red" />

Na poniższych zrzutach ekranu przedstawiono serię zaznaczonych CheckBox obiektów, w których każdy obiekt ma właściwość Color ustawioną na inną Color:

Zrzut ekranu przedstawiający kolorowe pola wyboru w systemach iOS i Android

Stany wizualizacji CheckBox

CheckBox element ma wartość IsCheckedVisualState , która może służyć do inicjowania zmiany wizualizacji w CheckBox momencie jej sprawdzenia.

W poniższym przykładzie XAML pokazano, jak zdefiniować stan wizualizacji IsChecked dla stanu:

<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>

W tym przykładzie IsCheckedVisualState parametr określa, że po CheckBox zaznaczeniu właściwości zostanie Color ustawiona na zielono. Określa NormalVisualState , że gdy CheckBox właściwość jest w normalnym stanie, jego Color właściwość zostanie ustawiona na czerwony. W związku z tym ogólny efekt polega na tym, że jest CheckBox czerwony, gdy jest pusty, i zielony po zaznaczeniu.

Aby uzyskać więcej informacji na temat stanów wizualizacji, zobacz Xamarin.Forms Visual State Manager.