Looking for xamarin.forms Keywords? Try Ask4Keywords

Xamarin.FormsDatenbindung


Bemerkungen

Mögliche Ausnahmen

System.ArrayTypeMismatchException: Es wurde versucht, auf ein Element als Typ zuzugreifen, der mit dem Array nicht kompatibel ist.

Diese Ausnahme kann auftreten, wenn versucht wird, eine Auflistung an eine nicht bindbare Eigenschaft zu binden, wenn die XAML-Vorkompilierung aktiviert ist. Ein bekanntes Beispiel ist der Versuch, an Picker.Items zu binden. Siehe unten.

System.ArgumentException: Objekt vom Typ 'Xamarin.Forms.Binding' kann nicht in den Typ 'System.String' konvertiert werden.

Diese Ausnahme kann auftreten, wenn versucht wird, eine Auflistung an eine nicht bindbare Eigenschaft zu binden, wenn die XAML-Vorkompilierung deaktiviert ist. Ein bekanntes Beispiel ist der Versuch, an Picker.Items zu binden. Siehe unten.

Die Picker.Items Eigenschaft ist nicht bindbar

Dieser Code verursacht einen Fehler:

<!-- BAD CODE: will cause an error -->
<Picker Items="{Binding MyViewModelItems}" SelectedIndex="0" />

Die Ausnahme kann eine der folgenden sein:

System.ArrayTypeMismatchException: Es wurde versucht, auf ein Element als Typ zuzugreifen, der mit dem Array nicht kompatibel ist.

oder

System.ArgumentException: Objekt vom Typ 'Xamarin.Forms.Binding' kann nicht in den Typ 'System.String' konvertiert werden.

Die Items Eigenschaft ist insbesondere nicht bindbar. Zu den Lösungen zählen das Erstellen eines eigenen benutzerdefinierten Steuerelements oder das Verwenden eines Steuerelements eines Drittanbieters, z. B. BindablePicker von FreshEssentials . Nach der Installation des FreshEssentials NuGet-Pakets in Ihrem Projekt ist das BindablePicker Steuerelement des Pakets mit einer ItemsSource Eigenschaft verfügbar:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:fe="clr-namespace:FreshEssentials;assembly=FreshEssentials"
             xmlns:my="clr-namespace:MyAssembly;assembly=MyAssembly"
             x:Class="MyNamespace.MyPage">
  <ContentPage.BindingContext>
    <my:MyViewModel />
  </ContentPage.BindingContext>
  <ContentPage.Content>
    <fe:BindablePicker ItemsSource="{Binding MyViewModelItems}" SelectedIndex="0" />
  </ContentPage.Content>
</ContentPage>

Datenbindung Verwandte Beispiele