Laden...

Wie kann ich im Xamarin XElemente in einem ListView binden?

Erstellt von gelöschtem Konto vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.636 Views
Gelöschter Account
vor 4 Jahren
Wie kann ich im Xamarin XElemente in einem ListView binden?

Hallo!

Ich beschäftige mich seit ein paar Wochen mit C# unter Xamarin und kämpfe derzeit mit dem Databinding. Ansatzweise hab ichs verstanden. Aber nicht immer geht es wie es soll.

Aktuell habe ich einen ListView, der XElemente darstellen soll. Die Source ist zugewiesen und mit

<Label Text="{Binding Name}"...

kann ich den Namen der XElemente anzeigen lassen. Nun will ich aber nicht
den Namen sondern ein Attribute anzeigen. Also verwende ich

<Label Text="{Binding Path=Attribute[NameDesAttributes].Value}"....

und nichts passiert. Auch keine Fehlermeldung.
Wo liegt der Fehler ? Kann mir jemand helfen ?

Danke und Gruß
Thomas

16.807 Beiträge seit 2008
vor 4 Jahren

Binding Errors siehst Du im Output Window von Visual Studio.

Warum aber bindest Du überhaupt ein Datenmodell wie XElement?
Warum bindest Du kein Modell? Was ist der Sinn?

Gelöschter Account
vor 4 Jahren

Visual Studio meldet hierzu keinen Fehler.

Warum ich das so mache ? Naja, ich probier halt rum und versuche die Grenzen auszuloten. Die Idee komplett auf ein Zischenmodell zu verzichten find ich sexy. Und da ich beim Einlesen eines XMLs Objekte bekomme, die das Datenbinding prinzipiell unterstützen sehe ich wenig Sinn daraus nochmal andere Objekte zu generieren. Laut diversen Beschreibungen soll es doch gehen.

W
955 Beiträge seit 2010
vor 4 Jahren

Der Sinn von Objekten besteht darin dass sie nicht nur einen Zustand sondern auch ein Verhalten kapseln: Man kann Methoden auf Objekten aufrufen. Das macht die Verarbeitung komplexer Prozesse einfacher als ein XML mit externen Funktionen anzufassen und zu manipulieren. Möglicherweise ist es schneller die XML-Struktur in Modellobjekte umzuwandeln als immer wieder umständlich nach XML-Bindungsfehler zu suchen.

Gelöschter Account
vor 4 Jahren

Dem stimme ich durchaus zu. So hab ich es auch zuerst probiert bis ich gesehen habe, dass es auch ohne Modell gehen müsste. Und da ich das XML nur lesen und nicht bearbeiten muss möchte ich eben jetzt diesen Weg probieren.

4.931 Beiträge seit 2008
vor 4 Jahren

So wie ich das in Übersicht über die WPF-Datenbindung mit LINQ to XML sowie Dynamische Eigenschaften in LINQ to XML verstehe, ist das Binden an diese dynamische Eigenschaften speziell in WPF implementiert (und nicht in Xamarin).

Sofern du Xamarin.Forms verwendest, könntest du wohl dessen Bindungswertkonverter für Xamarin.Forms verwenden, s. den Code in XDocument binding Elements and Attributes (du müßtest dann beim Binding noch diesen Converter angeben).