XAML Data Binding mit C# für Windows 8-Apps

Das Data Binding in Windows 8-Apps funktioniert so wie das [post id=“3810″]Data Binding in Windows Phone 7[/post]. Im Schnelldurchlauf geht das wie folgt:

  1. Eigene Klasse erstellen
  2. Gewünschtes XAML-Element mit Binding-Eigenschaften ausrüsten
  3. Instanzen der Klasse erzeugen
  4. Instanzen in einer Liste verwalten
  5. Liste dem DataContext des XAML-Elementes zuweisen

Ein kleines Code-Beispiel dazu.
XAML Data Binding mit C# für Windows 8-Apps weiterlesen

App-Einstellungen in der Charm Bar mit C# hinzufügen

Applikations-Einstellungen einer Windows Store-App können in der Charm Bar integriert werden. Der Benutzer braucht dann in der App nur die „Windowstaste + C“ drücken und kann dann im Menüpunkt „Einstellungen“ die für die App definierten Settings einsehen.

Wie man solche Settings mit C# hinzufügt, möchte ich in einem kleinen Code-Beispiel zeigen.
App-Einstellungen in der Charm Bar mit C# hinzufügen weiterlesen

HTTP ETag in Windows 8-Apps verwenden

Das ETag ist ein HTTP Header-Feld, das eingesetzt werden kann, um das erneute Laden von nicht veränderten Dateien zu vermeiden.

Fallbeispiel:

Man lädt Daten für eine App aus einer XML-Datei von einem Webserver. Bei jedem Start der App möchte man garantieren, dass die aktuellen Daten vorhanden sind. Das geht natürlich nur, wenn bei jedem Start der App die XML-Datei auf dem Server abgerufen -und auf Veränderungen überprüft wird. Dazu müsste man aber erst die komplette Datei herunterladen und parsen. Wenn sich die Datei auf dem Server nicht geändert hat, ist der immer wiederkehrende Vorgang des Herunterladens und Parsens überflüssig. Um diesen Überfluss zu vermeiden, kann man das ETag einsetzen.

Durch das ETag wird mitgeteilt, ob sich die Ressource verändert hat. Ist dies der Fall, verändert sich auch das ETag. Man muss also nur das ETag zwischenspeichern und bei jedem Start überprüfen. Hat sich das ETag verändert, wird die XML-Datei heruntergeladen und geparst. Hat sich das ETag nicht verändert, gibt es eine HttpRequestException mit der Information: „304 (Not Modified)“ und man weiß, dass man auf dem aktuellsten Stand ist.
HTTP ETag in Windows 8-Apps verwenden weiterlesen

Lambda-Ausdrücke in C#

Wer einen Event Handler für einen Button hinzufügen möchte, der kennt aus C# sicherlich folgende Schreibweise:

1
2
3
4
5
6
7
8
9
10
private void buttonClick(object sender, RoutedEventArgs events)
{
  // Event handling
}
 
public MyPage()
{
  InitializeComponent();
  backButton.Click += new RoutedEventHandler(buttonClick);
}

Man kann das Hinzufügen eines Event Handlers mit einem Lamba-Ausdruck aber auch noch verkürzen:

1
2
3
4
5
6
7
8
public MyPage()
{
  InitializeComponent();
  backButton.Click += (sender, events) =>
  {
    // Event handling
  };
}

YouTube-Videos in Windows 8 Metro Style Apps anzeigen

Mit Inlineframes (auch iframes genannt) können YouTube-Videos in Windows 8 Metro Style Apps ganz leicht eingebunden werden. Man braucht im XAML nur eine WebView definieren und dann vom Code Behind den Embed Code übergeben. Mit C# sieht das wie folgt aus:
YouTube-Videos in Windows 8 Metro Style Apps anzeigen weiterlesen

Grid Hintergrundbild setzen mit XAML

Im XAML-Code kann man Hintergrundbilder in verschiedenen Arten bestimmen.

Für einen einfarbigen Hintergrund bietet sich Folgendes an:

1
2
<Grid Background="White">
</Grid>

Will man selber ein Hintergrundbild setzen, kann man das so machen:

1
2
3
4
5
<Grid>
  <Grid.Background>
    <ImageBrush ImageSource="Image.jpg"/>
  </Grid.Background>
</Grid>

Es ist auch möglich, selbst definierte Ressourcen zu verwenden:
Windows Phone 7-Beispiel

1
2
3
4
5
6
7
8
9
<phone:PhoneApplicationPage
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  ..>
  <phone:PhoneApplicationPage.Resources>
    <SolidColorBrush x:Key="MyBrush" Color="Gold"/>
  </phone:PhoneApplicationPage.Resources>
  <Grid Background="{StaticResource MyBrush}">
  </Grid>
</phone:PhoneApplicationPage>

Windows 8 App-Beispiel

1
2
3
4
5
<Page.Resources>
  <SolidColorBrush x:Key="MyBrush" Color="Gold"/>
</Page.Resources>
<Grid Background="{StaticResource MyBrush}">
</Grid>