for WPF developers
Visual Studio 2013 において、デフォルトの WPF アプリケーションプロジェクトの内部構造から、 MVVM パターンを意識した内部構造にするための方法を紹介します。
WPF によるデスクトップアプリケーションを開発する場合、Visual Studio では "WPF アプリケーション" というプロジェクトを選択して開発を進めます。 新規プロジェクトを作成するとき、Fig.1 のように Visual C# の下にある "WPF アプリケーション" を選択し、ソリューション名を決定して下さい。 WPF アプリケーションのデフォルトの内部構造はFig.2 のように App クラスと MainWindow クラスのみとなっています。 また、参照設定を見ると、コンソールアプリケーションに比べて PresentationCore、PresentationFramework、System.Xaml、WindowsBase の外部参照が追加されています。 一方、WPF はUI とロジックを明確に切り分けて開発を進めることができる MVVM パターンによるプログラミングを支援するシステムとして知られています。 これを有効活用するにはデフォルトの内部構造では少し不便ですので、使いやすいように変更して使います。
具体的には次のような作業となります。
以上の作業をおこなった後の内部構造は Fig.3 のようになります。 また、編集した App.xaml および App.xaml.cs は Code 1、Code 2 のようになります。 このように MainView の DataContext に対して MainViewModel を指定することで、 MainView と MainViewModel の間でデータバインディング機能を用いたデータのやり取りができるようになります。 しかし、データバインディング機能を使用するためには、 ViewModel 側は INotifyPropertyChanged インターフェースや ICommand インターフェースを実装したプロパティを公開する必要があります。
Designed by CSS.Design Sample