True False Converter in Windows 8 Databinding

Einen Wahr Falsch Konverter würde ich manchmal jemanden wünschen. Hier geht es aber um die Anzeige von Daten, bzw. einer Liste die aus komplexen Objekten mit einer boolschen Eigenschaft besteht.

Typischerweise bindet man eine Wert vom Typ Bool an einen Eigenschaft die Typ Text oder was anderes hat. Einige Converter sind in WinRt Visual Studio 2012 Projekt Template schon vorbelegt.

image

Ich baue mir den ToX converter um flexibel zu sein. Ich hab mir kurzfristig überlegt ob ich die Switchwerte als StaticResource im XAML deklariere, mich aber dann für gemeine Propertys entschieden.

Imports System
Imports Windows.UI
Public Class booleanToXConverter
    Implements IValueConverter
    Private _wahr As String
    Public Property wahr() As String
        Get
            Return _wahr
        End Get
        Set(ByVal value As String)
            _wahr = value
        End Set
    End Property
    Private _falsch As String
    Public Property falsch() As String
        Get
            Return _falsch
        End Get
        Set(ByVal value As String)
            _falsch = value
        End Set
    End Property
    Public Function Convert(value As Object, targetType As Type,
parameter As Object, language As String) As Object Implements IValueConverter.Convert
        If value Then
            Return wahr
        Else
            Return falsch
        End If
    End Function
    Public Function ConvertBack(value As Object, targetType As Type,
parameter As Object, language As String) As Object Implements IValueConverter.ConvertBack
    End Function
End Class

Man könnte auch die Parameter im Binding verwenden, muss diese dann aber x-fach im XAML Code tippen.

Zunächst die deklarative Instanz mit seinen beiden Attributen

 <Page.Resources>
   <local:booleanToXConverter x:Key="booleanToXConverter" falsch="Gesendet" wahr="Empfangen"/>

Das Binden per XAML im Windows 8 METRO Style App per Converter

  <TextBlock  Text="{Binding key,Converter={StaticResource booleanToXConverter}}" Margin="0"
 FontSize="21"
Kommentare sind geschlossen