Posts mit dem Label XAML werden angezeigt. Alle Posts anzeigen
Posts mit dem Label XAML werden angezeigt. Alle Posts anzeigen

Dienstag, 15. Juli 2014

Meine Blogs jetzt auch als App für Windows 8.1 und Windows Phone 8.1

Hallo zusammen,

hier jetzt auch mal ein Praktisches Beispiel für ein Universal-App für Windows 8.1 und Windows Phone 8.1 Apps. Ihr könnt nun meine Blogs auch über dies App folgen und seit so immer auf dem laufenden.

Ich könnt die App im Windows Store unter dem folgenden Link beziehen:

Windows 8.1

http://apps.microsoft.com/windows/app/ccs-blogreader/26d01b75-35e9-437f-8ac8-44eb8584538a

Windows Phone 8.1

http://www.windowsphone.com/s?appid=120d63f1-c3d4-4364-a1f6-0891cc93c8b6

Dienstag, 8. Juli 2014

XAML Formatieren von Bindings mit IValueConverter Interface


In vielen Fällen kommt es vor das, dass Format was man von einer Datenquelle erhält, nicht der passende Formatierung für den Anzeigezweck entspricht. Man kann natürlich die Datenquelle anpassen oder die ToString()Methoden Überschreibt. Aber die kann man auch eleganter über einen Konverter erreichen.

Um einen Konverter für eine Type zu erstellen kann man sich des Interfaces IValueConverter bedienen.

Diese Interface bedingt die Methode Convert und ConvertBack und können im XAML beim Binding der Datenquelle wie folgt verwendet werden.

< UserControl.Resources>
       <Converter:DateTimeConverter x:Key="DateTimeConverter" />
</UserControl.Resources>

<GridViewColumn
EntryDateMember ="{Binding Path=EntryDate, Converter={StaticResource DateTimeConverter}}" />
Die zugehörige C# Klasse kann mit folgendem Listing verwendet werden.
public class DateTimeConverter : IValueConverter
{
     public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value != null)
        {
            return ((DateTime)value).ToString("dd.MM.yyyy");
        }
        else
        {
            return String.Empty
        }

    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
   {
      return DateTime.Parse(value.ToString());
   }
}



Im diesem Beispiel wird das Entrittsdatum im Format “dd.MM.yyyy” zurückgegen. Man kann diese Konverter Klassen auf Bedingungsprüfungen verwenden, um Beispielsweise die Darstellung des Textes zu verändern über Abhängigkeiten der Datenquelle.
Im Beispiel wird die Schriftdicke durch einen Booleschen Wert bestimmt.

public class BooleanToFontWieghtConverter
             : IValueConverter
{
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            string ret = "Normal";
            if((bool)value)
            {
                ret = "ExtraBold";
            }
            return ret;
         }

       public object ConvertBack(object value, Type targetType, object parameter, string language)
      {
            return value.ToString().Equals("ExtraBold");
      }
}

Für weiter Informationen siehe MSDN IValueConverter-Schnittstelle