Fragen nur, wenn es eine Möglichkeit gibt, eine Eigenschaft eines Steuerelements an das Ansichtsmodell in Code mit dem neuen x:Bind
in UWP zu binden? Der alte Weg war mit der SetBinding
Methode möglich.Ist es möglich, eine Eigenschaft im Code "x: Binden"?
Antwort
Nun, zunächst einmal - WPF unterstützt {x:Bind}
nicht.
Zweitens - ich glaube nicht, dass es da ist oder dass es einen Weg geben muss. {x:Bind}
erzeugt im Wesentlichen Code, um die Bindungsquelle und das Ansichtsmodell zu aktualisieren. Wenn Sie also nicht {x:Bind}
in XAML verwenden möchten, schreiben Sie den Code, um Ihre Ansichtseigenschaften zu ändern, wenn sich die Ansichtsmodelleigenschaften ändern und umgekehrt .
Wenn Sie sich den generierten Code ansehen (z. B. obj\MainPage.g.cs
), sehen Sie den generierten Code für jede {x:Bind}
, die Sie in Ihrem XAML haben. Ich denke, es gibt immer noch etwas in der Plattform, das erforderlich ist, damit es mit dem generierten Code funktioniert, aber wenn Sie stattdessen Ihren eigenen Code schreiben, wird es wahrscheinlich sauberer sein als das, was der XAML-Compiler erzeugt und die Plattform nicht benötigt für dich.
Einfach - nein, ist es nicht.
Es ist kompilierte und stark typisierte Bindung, daher wird es während der Kompilierung in Code konvertiert, nicht in Laufzeit.
Der Hauptgrund für das Erstellen von Bindung in Code-Behind könnte einige dynamische Änderungen sein oder zum Beispiel das Erzeugen einiger Steuerelemente im Zyklus und das Festlegen ihrer Eigenschaften mit Bindung. Aber es ist nicht möglich, da x: Bind in der Laufzeit nicht geändert werden konnte, deshalb könnte es sein, dass es nicht möglich ist, es in Code-Behind zu bearbeiten.