1

すべて、私はMVVMを初めて使用するので、優しくしてください。MVVMを使用して、基本的な「モデル」またはデータをWPFのビューにバインドする方法を学びました。現在、新しいアプリケーションに着手しています。MVVMを最初に使用したいのは、アプリケーションの新しいカラーテーマの迅速な変更/開発を容易にすることです。私はオンラインで読んだいくつかの基本的なチュートリアルに従ってこれを行おうとしていますが、私が望むものを達成するための最良の方法について混乱しています。

WPFとMVVMを見たことがあります-テーマを動的に変更しますが、これは役に立ちません。代わりに、より多くの質問に燃料を供給します。私がやりたいことをするための最良の方法は何ですか?MVVMを使用してそれを達成するにはどうすればよいですか?

基本的な概要を教えていただければ幸いです。

4

1 に答える 1

2

MVVMがあるからといって、コードが背後にないというわけではありません。実際、ViewModelにUI関連の懸念だけがあると、コードの臭いになる可能性があります。UIに任せてみませんか?

public interface IMainView {
   void ChangeTheme(string themeName);
}

public class ViewModel {

   public IMainView View { get; } //get the view somehow
   public ICommand ChangeThemeCommand { get; }

   private void OnChangeThemeCommandExecute(string themeName) {
      View.ChangeTheme(themeName);
   }
}

このアプローチを使用すると、コマンドの呼び出しとビューへの委任をテストできます(テストする価値がある場合)。あなたはまだ関心の分離といくつかのテスト容易性を持っています。

于 2013-01-21T23:30:58.703 に答える