Quantcast
Channel: ppedv Team Blog
Viewing all articles
Browse latest Browse all 1198

UWP Compiled Function Binding

$
0
0

Wer sich vor den Converter Klassen und seinem IValueConverter Interface ekelt, wird sich über ein neues Feature in UWP (Universal Windows Platform) Compiled Bindings freuen. Für einfaches x: Bind an z.B. einen Textblock kann man nun eine Funktion direkt angeben. Da man mehrere Parameter übergeben kann, wie Propertys oder UI Control Eigenschaften erhält man damit auch automatisch ein Multibinding.

Etwas unglücklich muss die Methode auf der Klassenebene definiert sein wie die Bindung aktuell erfolgt. Eine Funktion der Page Klasse kann, so direkt im XAML angegeben werden. Wird allerdings in einer gebundenen Liste (Itemsource) die konvertierung benötigt, braucht die Model Klasse (MVVM) die Funktion. Im folgenden wird eine Windows Wetter App mit Hilfes des Openweather Service  gebaut. Die Visual Basic .NET Klasse wird analog zum JSON Objekt erstellt.

   1:  PublicClass Liste
   2:  PublicProperty dt AsInteger
   3:  PublicProperty temp As Temp
   4:  PublicProperty pressure AsSingle
   5:  PublicProperty humidity AsInteger
   6:  PublicProperty weather As ObservableCollection(Of Weather)
   7:  PublicProperty speed AsSingle
   8:  PublicProperty deg AsInteger
   9:  PublicProperty clouds AsInteger
  10:  PublicProperty rain AsSingle
  11:  PublicProperty snow AsSingle
  12:  PublicFunction Int2Datum(s AsInteger) AsDate
  13:  Dim d = New DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
  14:  Return d.AddSeconds(s/1000)
  15:  EndFunction
  16:  End Class

Da der Tag für den die Wettervorhersage gilt, in der JavaScript üblichen Zeitrechnung (Millisekunden seit 1.1.1970) übergeben werden muss diese per Methode Int2Datum konvertiert werden.

Im XAML der Page wird dann die Methode mit einem Property als Parameter angegeben.

   1:  <TextBlockText="{x:Bind  int2Datum(dt),Mode=OneWay}"></TextBlock>
   2:  <TextBlockText="{x:Bind  deg,Mode=OneWay}"Margin="0,50,0,0"></TextBlock>
 

Soweit so gut, nur hatte ich einen Fehler “Die 'int2Datum'-Eigenschaft wurde in Typ 'Liste' nicht gefunden”

image

Um ehrlich zu sein hatte ich Compiled Binding Functions auch erst wenige Male verwendet. Geschlagene zwei Stunden später, kam ich auf den Gedanken, das diese Feature erst mit dem Anniversary Update Einzug gehalten hat.

image

In den Projekteigenschaften von Visual Studio ( hier 2017) muss die Min. Version entsprechend hochgestuft werden.


Viewing all articles
Browse latest Browse all 1198

Trending Articles


Vimeo 10.7.1 by Vimeo.com, Inc.


UPDATE SC IDOL: TWO BECOME ONE


KASAMBAHAY BILL IN THE HOUSE


Girasoles para colorear


Presence Quotes – Positive Quotes


EASY COME, EASY GO


Love with Heart Breaking Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.0 by Vimeo.com, Inc.


FORECLOSURE OF REAL ESTATE MORTGAGE


FORTUITOUS EVENT


Pokemon para colorear


Sapos para colorear


Smile Quotes


Letting Go Quotes


Love Song lyrics that marks your Heart


RE: Mutton Pies (frankie241)


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


Long Distance Relationship Tagalog Love Quotes