ViewModelにユーザーとの対話に(1)MVVMを使用して一般的なエラー

欠点、ユニットテストを行うことができません

たとえば、ユーザーがファイルを選択し、ファイルの内容を解析し、ユーザーを達成するために、インターフェイスのボタンをクリックします。以下の一般的なエラー

1  使用Microsoft.Win32と、
2  
3  ネームスペースビュー和ビューモデル分工
 4  {
 5      パブリック クラスMainWindowViewModel
 6      {
 7          公共 ボイド構文解析ファイル()
 8          {
 9              OpenFileDialog openFileDialog = 新しいOpenFileDialog()。
10              であれば(openFileDialog.ShowDialog()== 11              {
 12                  // 解析文件
13              }
 14          }
 15      }
 16 }

そして、いくつかのユーザーとの対話(OpenFileDialog)は、ビューを配置する必要があります。ここでは、ファイル名パラメータコマンドを渡すために使用することができます

1つの ネームスペースビュービューモデルの分割及び
 2  {
 3      パブリック クラスMainWindowViewModel
 。4      {
 5          公共 ボイド構文解析ファイル(文字列filename)で
 。6          {
 7              // ファイルを解析
8          }
 9      }
 10 }

[表示]ボタンで対話するイベントをクリックします。ユーザーが操作をキャンセルした場合、異常の使用は、コマンドの実行をキャンセル

1          プライベート ボイド Button_Click(オブジェクト送信者、RoutedEventArgs E)
 2          {
 3              OpenFileDialog openFileDialog = 新しいOpenFileDialog()。
4              もし(送信者があるボタンのボタン&& openFileDialog.ShowDialog()== 5                  button.CommandParameter = openFileDialog.FileName。
6              他の
7                  スロー 新しいUserCanceledException();
8          }

クリックして、コマンドXAMLで部分を指定し、ボタン

        < ボタンコマンド=「{}バインディングParseFileCommand をクリックして=「Button_Click」コンテンツ=「はファイルの解析を選択して」/>

私の中の完全な例のGithub

推奨我々はMVVMパターンを使用する場合、我々はそれぞれの層に何をすべきか?

おすすめ

転載: www.cnblogs.com/noctwolf/p/11110269.html
おすすめ