UWP x:Bind Typ casting

Aus einer Powerpoint Folie der BUILD Konferenz 2016 stamm folgender recht lässig klingender Auszug, der die Neuerungen zu Windows 10.2 (anniversary update) beschreibt.

image

Vor allem der letzte Punkt das casten in XAML. Die Syntax lehnt sich dabei an C# an, auch wenn das Windows 10 APP Projekt mit VB.NET erstellt wird. Nun frage ich mich was das Stück Code bewirken soll. Ein Cast einer Property (vermutlich vom Typ String) wird in ein komplexes Objekt umgewandelt und dann an eine Text Eigenschaft gebunden?

Man muss allerdings vorrausschicken, das es compiled Bindings mit den Typen sehr ernst nehmen. Wer keinen Converter programmieren will, muss den Typ eben so umwandeln.

Wobei eine Erleichterung für implizite Casts fällt auf. Die Eigenschaft eines UI Elements Visible kann nun an Bool gebunden werden. Ging bisher nur mit dem berühmten BooleanToVisibilityConverter aus System.Windows.Controls. Ich hab auch genug Code gesehen, wo die Entwickler dies auch noch per Hand codiert haben.

Nach einigen Tests stellt ich heraus, das auch andere Convertierungen wie integer>double oder integer>string einfach so funktionieren und damit nicht streng typisiert sind (weak)

Der nächste Versuch war irgendwas in der Form (string) vm.zahl. Das scheitert gleich mehrfach kläglich beim kompilieren und zur Laufzeit. Zunächst ist Standard OneTime Binding. Somit muss das Attribut auf Oneway gesetzt werden. Außerdem sind Datentypen über den XAML Namensraum zu benennen (hier eben x). Und dann wird eben noch die C# Syntax verwendet.

Ein Element zu Element Binding lässt sich mit Typumwandlung wie folgt umsetzen

   1:  <Rectangle Width="100" Height="10" HorizontalAlignment="Center"
   2:    Fill="Silver" Visibility="{x:Bind (x:Boolean)checkbox1.IsChecked,Mode=OneWay}" />
   3:  <CheckBox x:Name="checkbox1"></CheckBox>
Kommentare sind geschlossen