Der direkte Zugriff über die Code-behind-Datei ist für einige Entwickler oft noch verlockend. Gerade bei einem größeren Team kann das erhebliche Folgen haben: Information Hiding! Zur Absicherung gibt es eine harte, aber sinnvolle Lösung. Die Code-Behind-Datei einfach aus dem Solution Explorer löschen. Wichtig dabei ist nur, dass in der XAML-Datei der XAML-Namespace-Eintrag x:Class ebenfalls entfernt wird. Sie können nun getrost das Projekt builden und ausführen, die Code-behind-Datei ist gar nicht notwendig.
Für eine Vermittlung von Events zum ViewModel gibt es eine attraktive Lösung mittels Behaviors. Diese wurden bereits in der Kolumne vorgestellt. Das Instanziieren vom ViewModel erfolgt über den Resources-Bereich. In Listing 1 wird gezeigt, wie ein Behavior an einem Loaded-Event lauscht und eine Methode vom ViewModel aufruft. Dieses wurde ebenfalls im Resources-Bereich angelegt. Sie sehen auch hier: Es ist keine Code-Behind-Datei notwendig.
<Window xmlns="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" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:ViewOhneCodeBehind" Title="MainWindow" Width="525" Height="350" mc:Ignorable="d"> <Window.Resources> <local:MainViewModel x:Key="ViewModel" /> </Window.Resources> <Grid DataContext="{StaticResource ViewModel}"> <i:Interaction.Triggers> <i:EventTrigger EventName="Loaded"> <ei:CallMethodAction MethodName="ViewLoaded" TargetObject="{Binding Mode=OneWay}" /> </i:EventTrigger> </i:Interaction.Triggers> </Grid> </Window>
Windows Developer
Dieser Artikel ist im Windows Developer erschienen. Windows Developer informiert umfassend und herstellerneutral über neue Trends und Möglichkeiten der Software- und Systementwicklung rund um Microsoft-Technologien.
Natürlich können Sie den Windows Developer über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. Außerdem ist der Windows Developer weiterhin als Print-Magazin im Abonnement erhältlich.
Modul ADOC – Architekturdokumentation – Softwarearchitekturen festhalten und kommunizieren
mit Stefan Zörner (embarc)
Modul FLEX – Flexible Architekturen: Microservices, Self-contained Systems und Continuous Delivery
mit Eberhard Wolff oder Niko Will (INNOQ)