2011-07-04 14 views
2

私はMVVMで自分のやり方を開始しています.. 私は既にウィンドウを実装していて、それをMVVに変更する必要があります ..私のウィンドウでは、ビジュアルツリー ビューモデルでこれをどのように行うことができますか?私はviewmodelからビュー内の関数にアクセスすることはできません..WPF MVVM - ビューモデルへの移動の問題

+0

よく書か例えばこの回答を参照してください?なぜ答えたらいいの?あなたのデザインをMVVMに変更することができます。 MVVMは、主にViewModelsのデータバインディング(ビューをハッキングする)に依存しています。バッキングビューモデルは、バインド可能なプロパティとして検索しているものをすべて公開する必要があります。 – Gishu

答えて

0

ViewModelではそうしません。ビューへのアクセスはビュー内で行う必要があり、コードが必要な場合は、コードを含むコントロールを開発し、ビュー内でコントロールを使用するオプションがあります。

ビューに関する知識をViewModelに追加しないでください。それはパターンを混乱させ、MVVMのメリット(一部)を取り除くでしょう。

+0

私はこれを実装する方法を理解していません。 – Adreana

+0

今私のビューは、ある特定の計算を行い、テキストボックスである任意のコントロールで計算された値を入れることになっているボタンを持っています。これについては、私はタイプのテキストボックスのすべてのコントロールのビジュアルツリーを検索し、このコレクションを越えて値を設定します – Adreana

+0

どのように私はmvvmを使用してこれを実装できますか? – Adreana

2

この機能を公開し、その実装をViewModelに挿入するカスタムインターフェイスを作成できます。

これは最も洗練された解決策ではないかもしれませんが、テスト可能で疎結合の簡単なものです。何*あなたはビジュアルツリーを検索している*

How to play Sound and Animations in MVVM

+1

+1もう1つの良い例は、ビューの追加/削除、またはレイアウトの保存のためのインターフェイスです。これらのメソッドを使用してインターフェイスを作成し、コードビハインドで実装してからビューモデルとビューを作成しますそのインタフェースを使用してビューモデルにビューを挿入します。 –

関連する問題