ダウンロード サンプルファイル (37.9 KB)
アプリケーションの完成
これで部品はすべて出揃いました。あとか各インスタンスを生成し、MainWindowとMainWindowViewModel、およびMainWindowsViewModelとCounterModelとを接続すれば完成です。インスタンスはAppに持たせ、インスタンス間の接続はMainWindowのコンストラクタで行うことにします。
using System.Windows;
namespace DataBindingSample {
public partial class App : Application {
public MainWindowViewModel ViewModel { get { return viewmodel_; } }
public CounterModel Model { get { return model_; } }
private MainWindowViewModel viewmodel_ = new MainWindowViewModel();
private CounterModel model_ = new CounterModel();
}
}
using System.Windows;
namespace DataBindingSample {
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
App app = Application.Current as App;
DataContext = app.ViewModel;
app.ViewModel.IncCommand = new DelegateCommand(app.Model.Increment);
app.ViewModel.DecCommand = new DelegateCommand(app.Model.Decrement);
app.Model.CountUpdated += app.ViewModel.Update;
}
}
}
各クラスの関連図を示しておきます。
まとめ
……我ながらくだらん遊びをやりますなぁ。とは言え、いくつかの言語をそこそこ読める/書けると何かと重宝しますよ。C#のサンプルが山ほどあるのにVBしかわかんないとか、C/C++のライブラリがC#/VBから使えないとか、もったいないじゃないですか。Visual Studio 2012 RCがリリースされたし、Windows 8ももうすぐだし、せっかくだから(?)もうひとつ、使える言語を増やしてみてはいかがでしょう。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- この記事の著者
-
επιστημη(エピステーメー)
C++に首まで浸かったプログラマ。Microsoft MVP, Visual C++ (2004.01~2018.06) "だった"りわんくま同盟でたまにセッションスピーカやったり中国茶淹れてにわか茶...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

