CodeZine(コードジン)

特集ページ一覧

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

Visual Studio ぜんぶのせ!

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2012/06/06 14:00
目次

アプリケーションの完成

 これで部品はすべて出揃いました。あとか各インスタンスを生成し、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ももうすぐだし、せっかくだから(?)もうひとつ、使える言語を増やしてみてはいかがでしょう。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • επιστημη(エピステーメー)

    C++に首まで浸かったプログラマ。 Microsoft MVP, Visual C++ (2004.01~2018.06) "だった"り わんくま同盟でたまにセッションスピーカやったり 中国茶淹れてにわか茶人を気取ってたり、 あと Facebook とか。 著書: - STL標準...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5