Hier aufklappen um sämtliche Kategorien zu durchstöbern.

MVVM: Die View

6. Mai 2010 in WPF | Silverlight

Kürzlich habe ich eine Anfrage erhalten, was die einzelnen Objekte, welche durch das Pattern MVVM beschrieben werden, tatsächlich beinhalten. Darauf möchte ich kurz mit meiner Interpretation dieses Patterns eingehen und zur Diskussion stellen.

Definition View

Die View stellt das dar, was der Benutzer davon erwartet. So werden reine Daten, Videos und Bilder dargestellt. Benutzereingaben über Tastatur, Maus usw. werden abgefangen und an das ViewModel weitergeleitet.

Im Code-behind der View wird so wenig Code als möglich geschrieben. Es kann aber durchaus erforderlich sein, dies zu tun. Ist das der Fall, dann darf sich der Code nur auf die View beziehen und dieser keine zusätzlichen Abhängigkeiten bringen. Grundsätzlich wird hier mit Datenbindung gearbeitet und so die Möglichkeit geschaffen, die View einfach auszutauschen, ohne Änderungen am Code vornehmen zu müssen.

Beispielhafte View

Nachfolgend findet sich eine mögliche Darstellung der View. Die Basis für die Datenbindung wird durch ein ViewModel dargestellt, welches der Eigenschaft DataContext der View gesetzt wird.

<UserControl x:Class="DevTyr.MvvmObjectsDemo.View.CompanyView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>    
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        
        <TextBlock Text="Name" Grid.Row="0"/>
        <TextBlock Text="Strasse" Grid.Row="1"/>
        <TextBlock Text="Hausnummer" Grid.Row="2"/>
        <TextBlock Text="Stadt" Grid.Row="3"/>
        <TextBlock Text="PLZ" Grid.Row="4"/>
        <TextBlock Text="Land" Grid.Row="5"/>
        
        <TextBox Text="{Binding Name}" Grid.Column="1" Grid.Row="0"/>
        <TextBox Text="{Binding Street}" Grid.Column="1" Grid.Row="1"/>
        <TextBox Text="{Binding StreetNumber}" Grid.Column="1" Grid.Row="2"/>
        <TextBox Text="{Binding City}" Grid.Column="1" Grid.Row="3"/>
        <TextBox Text="{Binding Zip}" Grid.Column="1" Grid.Row="4"/>
        <TextBox Text="{Binding Country}" Grid.Column="1" Grid.Row="5"/>
    </Grid>
</UserControl>

Wie das ViewModel in den Datenkontext der View gelangt, zeigt dieser Beitrag.

 

Die weiteren Objekte des MVVM-Patterns:

MVVM: Das Model
MVVM: Das ViewModel

kick it on dotnet-kicks.de

blog comments powered by Disqus
Anmelden