Mock Objekte mit XML und DataTeplate
Um ein WPF Window, während der Entwicklung mal auf die schnelle zu testen, ist es nicht immer möglich sofort die Komplette Datenbank, an die Oberfläche zu koppeln.
Natürlich würde man sich an dieser Stelle wünschen, wenn man eine getrennte Entwicklungs Datenbank (zB. mit den Daten vom Vortag) zur Verfügung hätte, doch leider läuft nicht immer alles so Perfekt in der Softwareentwicklung und man brauch eine alternative. Für diesen Anwendungsfall sehe ich, zumindest für mich, eine Lösung in XML.
Vorteile
- XML Quellen können leicht erstellt und verändert werden
- die Änderungen im XAML sind übersichtlich
- Bei jedem Test, die gleichen Daten
<Window x:Class="WpfApplication14.MainWindow"
xmlns="<a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"">http://schemas.microsoft.com/winfx/2006/xaml/presentation"</a
xmlns:x="<a href=">http://schemas.microsoft.com/winfx/2006/xaml"">http://schemas.microsoft.com/winfx/2006/xaml"</a
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<XmlDataProvider x:Key="xmlSource" XPath="/Kunden">
<x:XData>
<Kunden xmlns="">
<Kunde>
<Name>Lars</Name>
<Nachname>Schmitt</Nachname>
<Mail>Larsschmitt...de</Mail>
</Kunde>
<Kunde>
<Name>Muster</Name>
<Nachname>Muster</Nachname>
<Mail>Dummymuster...de</Mail>
</Kunde>
</Kunden>
</x:XData>
</XmlDataProvider>
<DataTemplate DataType="Kunde">
<TextBlock Text="{Binding XPath=Name}"/>
<TextBlock Text="{Binding XPath=Nachname}"/>
<TextBlock Text="{Binding XPath=Mail}"/>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox DataContext="{StaticResource xmlSource}" ItemsSource="{Binding XPath=Kunde}"/>
</Grid>
</Window>
Die einzigsten Änderungen, die an dem XAML Code durchgeführt werden müssten, wären zum einem das Ändern der kompletten Datenquellen, sowie jedes einzelne Path auf XPath.