WPF, Silverlight, Windows Phone 8 und Windows Store Apps

XAML: Design Time Binding
Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und Fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „XAML: Design Time Binding“. Viel Spaß mit XAML Expertise.

Ein großer Vorteil von Visual Studio ist die visuelle Darstellung von XAML. Diese ist aber nur auf hart kodierten Text beschränkt. Dynamisch zur Laufzeit geladene Dateien sind somit nicht sichtbar.

Mittels Design Time Binging Layoutprobleme beheben

Das erschwert das korrekte Layouten und somit ebenfalls das Erstellen von Data Templates. Die am häufigsten verwendete Vorgehensweise, um diesem Problem zu begegnen, ist das kontinuierliche Ausführen des Projekts. Allerdings ist dieser Prozess sehr zeitaufwändig. Um diesem Problem wiederum aus dem Weg zu gehen, gibt es das Design-Time-Binding-Feature, das das Bereitstellen von statischen Daten zur Designzeit ermöglicht.

Dazu wird nur eine Designtime-Klasse benötigt, die als Basisklasse unsere gewünschte Datenklasse erhält. Die Klasse wird dann über XAML instanziiert, und die nötigen Daten werden statisch festgelegt. Um Design Time Binding zu ermöglichen, ist ein zusätzlicher XML-Namespace von Expression erforderlich. Listing 1, 2 und 3 zeigen die Implementierung, Abbildung 1 zeigt das Ergebnis.

public class DesignTimeModel : List
{
}	

public class Customer 
{
    public string Name { get; set; }
}
 	
    
    
    
 http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        Title="MainWindow" Height="350" Width="525">
    
        
            
                
                    
                
            
        
    
 

Abb. 1: Daten zur Designzeit mittels Design Time Binding

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -