Xamarin.Forms Checkbox
Der Xamarin.FormsCheckBox
ist ein Typ von Schaltflächen, die entweder aktiviert oder leer sein kann. Wenn ein Kontrollkästchen aktiviert ist, gilt es als aktiviert. Wenn ein Kontrollkästchen leer ist, gilt es als deaktiviert.
CheckBox
definiert eine bool
Eigenschaft namens IsChecked
, die angibt, ob der CheckBox
aktiviert ist. Diese Eigenschaft wird auch durch ein BindableProperty
-Objekt unterstützt, was bedeutet, dass es formatiert werden kann und das Ziel von Datenbindungen sein kann.
Hinweis
Die IsChecked
bindbare Eigenschaft weist den Standardbindungsmodus auf BindingMode.TwoWay
.
CheckBox
definiert ein CheckedChanged
Ereignis, das ausgelöst wird, wenn sich die IsChecked
Eigenschaft ändert, entweder durch Benutzerbearbeitung oder wenn eine Anwendung die IsChecked
Eigenschaft festlegt. Das CheckedChangedEventArgs
-Objekt, das das CheckedChanged
Ereignis begleitet, verfügt über eine einzelne Eigenschaft mit dem Namen Value
, vom Typ bool
. Wenn das Ereignis ausgelöst wird, wird der Wert der Value
-Eigenschaft auf den neuen Wert der IsChecked
-Eigenschaft festgelegt.
Erstellen eines CheckBox-Steuerelements
Das folgende Beispiel zeigt, wie ein CheckBox
in XAML instanziieren wird:
<CheckBox />
Dieser XAML-Code führt zu der Darstellung, die in den folgenden Screenshots gezeigt wird:
Standardmäßig ist der CheckBox
leer. Kann CheckBox
durch Benutzermanipulation oder durch Festlegen der IsChecked
-Eigenschaft auf true
überprüft werden:
<CheckBox IsChecked="true" />
Dieser XAML-Code führt zu der Darstellung, die in den folgenden Screenshots gezeigt wird:
Alternativ kann ein CheckBox
im Code erstellt werden:
CheckBox checkBox = new CheckBox { IsChecked = true };
Reagieren auf einen Sich ändernden CheckBox-Zustand
Wenn sich die IsChecked
Eigenschaft ändert, entweder durch Benutzerbearbeitung oder wenn eine Anwendung die IsChecked
Eigenschaft festlegt, wird das CheckedChanged
Ereignis ausgelöst. Ein Ereignishandler für dieses Ereignis kann registriert werden, um auf die Änderung zu reagieren:
<CheckBox CheckedChanged="OnCheckBoxCheckedChanged" />
Die CodeBehind-Datei enthält den Handler für das CheckedChanged
Ereignis:
void OnCheckBoxCheckedChanged(object sender, CheckedChangedEventArgs e)
{
// Perform required operation after examining e.Value
}
Das sender
Argument ist CheckBox
für dieses Ereignis verantwortlich. Sie können dies verwenden, um auf das CheckBox
-Objekt zuzugreifen oder zwischen mehreren CheckBox
Objekten zu unterscheiden, die denselben CheckedChanged
Ereignishandler verwenden.
Alternativ kann ein Ereignishandler für das CheckedChanged
Ereignis im Code registriert werden:
CheckBox checkBox = new CheckBox { ... };
checkBox.CheckedChanged += (sender, e) =>
{
// Perform required operation after examining e.Value
};
Datenbindung eines CheckBox-Steuerelements
Der CheckedChanged
Ereignishandler kann entfernt werden, indem Datenbindung und Trigger verwendet werden, um auf ein aktiviertes CheckBox
oder leeres Objekt zu reagieren:
<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>
In diesem Beispiel wird ein Label
Bindungsausdruck in einem Datentrigger verwendet, um die IsChecked
-Eigenschaft von CheckBox
zu überwachen. Wenn diese Eigenschaft zu wird, werden true
die FontAttributes
Eigenschaften und FontSize
der Label
Änderung. Wenn die IsChecked
-Eigenschaft zu zurückgibt false
, werden die FontAttributes
Eigenschaften und FontSize
des Label
auf ihren Ursprünglichen Zustand zurückgesetzt.
In den folgenden Screenshots zeigt der iOS-Screenshot die Label
Formatierung, wenn leer CheckBox
ist, während der Android-Screenshot die Label
Formatierung zeigt, wenn die CheckBox
aktiviert ist:
Weitere Informationen zu Triggern finden Sie unter Xamarin.Forms Trigger.
Deaktivieren eines Kontrollkästchens
Manchmal tritt eine Anwendung in einen Zustand ein, in dem ein CheckBox
überprüfter Vorgang kein gültiger Vorgang ist. In solchen Fällen kann das CheckBox
deaktiviert werden, indem die zugehörige IsEnabled
-Eigenschaft auf false
festgelegt wird.
CheckBox-Darstellung
Zusätzlich zu den Eigenschaften, die CheckBox
von der View
-Klasse erbt, definiert auch eine Color
Eigenschaft, CheckBox
die ihre Farbe auf ein Color
festlegt:
<CheckBox Color="Red" />
Die folgenden Screenshots zeigen eine Reihe von überprüften CheckBox
Objekten, bei denen für jedes Objekt seine Color
Eigenschaft auf eine andere Color
festgelegt ist:
CheckBox-visuelle Zustände
CheckBox
verfügt über einen IsChecked
VisualState
, der verwendet werden kann, um eine visuelle Änderung an dem CheckBox
zu initiieren, wenn es aktiviert wird.
Das folgende XAML-Beispiel zeigt, wie ein visueller Zustand für den IsChecked
Zustand definiert wird:
<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>
In diesem Beispiel gibt die IsChecked
VisualState
an, dass die CheckBox
-Eigenschaft beim Kontrollkästchen Color
auf grün festgelegt wird. Gibt Normal
VisualState
an, dass die -Eigenschaft auf rot festgelegt wird, Color
wenn sich die CheckBox
Eigenschaft in einem normalen Zustand befindet. Daher ist der Gesamteffekt, dass rot CheckBox
ist, wenn es leer ist, und grün, wenn es aktiviert ist.
Weitere Informationen zu visuellen Zuständen finden Sie unter Xamarin.Forms: Visual State-Manager.