SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

WPFアプリケーションで腕試し
~C++でもWPFアプリを

Visual Studio ぜんぶのせ!

アプリケーションの完成

 これで部品はすべて出揃いました。あとか各インスタンスを生成し、MainWindowとMainWindowViewModel、およびMainWindowsViewModelとCounterModelとを接続すれば完成です。インスタンスはAppに持たせ、インスタンス間の接続はMainWindowのコンストラクタで行うことにします。

App.xaml.cs
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();
  }

}
MainWindow.xaml.cs
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) "だった"りわんくま同盟でたまにセッションスピーカやったり中国茶淹れてにわか茶...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6539 2012/06/06 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー