MVVM入門 その1「シンプル四則演算アプリケーションの作成」

概要このコードサンプルは、四則演算を行うアプリケーションの作成を通じてMVVMパターンの実装例を示します。ここで作成するサンプルアプリケーションは以下のようなものです。左辺値と右辺値を入力するTextBoxが2つあり、計算方法を「未選択」「足し算」「引き算」「掛け算」「割り算」からComboBoxで選択します。計算方法で未選択意外を選んだ状態になると計算実行のButtonが押せるようになります。そして、計算実行ボタンを押すとボタンの下に計算結果が表示されます。想定するサンプル利用者WPFとMVVMについては、なんとなくわかるけどMVVMの実装方法はピンと

C# (63.5 KB)
 
 
 
 
 
4.7 Star
(15)
8,968 times
Add to favorites
5/10/2012
E-mail Twitter del.icio.us Digg Facebook
Sign in to ask a question


  • Silverlightでの実装(CommandManager?)
    2 Posts | Last post August 26, 2011
    • MVVMの勉強にこちらのサンプルを利用させていただいております。
      (入門用にとてもよいサンプルで、とてもありがたく利用させてもらっています。)
      
      サンプルの、DelegateCommand.csの中で、
      CommandManagerを利用されていますが、
      Silverlightではこのクラスがありません。
      
      Silverlightで実装を行う場合、この部分はどのような実装がよいのでしょうか?
      
      よろしくお願いいたします。
      
    • 質問ありがとうございます。
      CommandManagerについてはご指摘の通りSilverlightでは提供されていないため、愚直にイベントとして作成するか、CommandManagerに該当するようなものを自前で作る必要があります。(CommandManagerみたいに、自動でCanExecuteChanged発行することは無理な気がします)
      
      そのため、SilverlightもサポートしているPrismやMVVM Light Toolkitなどはイベントを定義しています。
      MVVM Light Toolkit : http://mvvmlight.codeplex.com/SourceControl/changeset/view/7abea4dcc4a4#V3%2fGalaSoft.MvvmLight%2fGalaSoft.MvvmLight%20%28NET35%29%2fCommand%2fRelayCommand.cs
      Prism : http://compositewpf.codeplex.com/SourceControl/changeset/view/52595#1024751
      
      ここらへんが現実解なのかなと個人的に思ってます。
      その代り、ViewModel内でコマンドのCanExecuteChangedの発行を管理する必要があります。