Please activate JavaScript!
Please install Adobe Flash Player, click here for download

arcAKTUELL 3.2012 - Reale und virtuelle Infrastrukturen

51T I P P S U N D T R I C K S Wie setzen wir das nun in die Praxis um? Im Model implementieren wir die gesamte Logik für die Queries, eine öffentliche Methode zum Star- ten und ein QueryCompleted Event zum Mitteilen einer erfolgreichen Ausführung. Im ViewModel werden öffentliche Integer-Properties für die Anzahl der Features und ein ICommand für das Behandeln des Ex- tentChanged Event der Map definiert. Zusätzlich halten wir darin eine Instanz unseres Model vor. Das ICommand stößt später im Model die Queries an und im QueryCompleted Event Handler werden die Ergeb- nisse in die Integer-Properties des ViewModels geschrieben. Nun kommt der Clou – wir verknüpfen mittels DataBinding unser View Model mit dem View, also der MainWindow.xaml. Damit haben alle UI-Controls Zugriff auf alle öffentlichen Komponenten in unserem Vie- wModel. Das DataBinding kann sehr komfortabel in Expression Blend ohne Programmierung erledigt werden. Dazu wird einfach das gleiche Visual-Studio-Projekt geöffnet. In der MainWindow.xaml sieht es dann so aus: Als Nächstes binden wir mit Expression Blend die Integer-Properties des ViewModels an die jeweiligen Texteigenschaften der Controls für die Anzeige der Feature-Anzahl, in unserem Fall an die Content-Eigen- schaft von Labels. In XAML liest sich der Code dann folgendermaßen: Als Letztes fehlt noch die Anbindung des ExtentChanged Events der Map an unser ICommand aus dem ViewModel. Dazu bietet das MVVM Light Toolkit ein nettes Asset namens EventToCommand, mit dessen Hilfe jegliche Events inklusive Argumente an ICommands gekoppelt werden können. Genau das nutzen wir auch, implementieren ein Event- ToCommand und übergeben als Argument das ExtentEventArgs mit der neuen Extent-Geometrie, die wir für die Queries brauchen. Das Beispielprojekt haben wir zum Download auf GitHub5 zur Verfü- gung gestellt. Alexander Erbe Marko Apfel Esri Deutschland GmbH Kranzberg http://geekswithblogs.net/mapfel/ 1 Separation of Concerns: http://bit.ly/OYRadt 2 ArcGIS Runtime SDK for WPF: http://bit.ly/OYRIzY 3 MVVM Light Toolkit: http://bit.ly/OYSb5c 4 NuGet: http://bit.ly/OYSrRJ 5 Source Code auf GitHub: http://bit.ly/OYSU6E ++ 51 1 View der ArcGIS Runtime SDK for WPF – Anwendung 2 Projektstruktur in Microsoft Visual Studio 3 DataBinding in Microsoft Expression Blend

Seitenübersicht