2016-03-20 1 views
1

私はウェブを検索しましたが、この簡単な質問に直接的な説明はありませんでした...MVVMを使用している場合、ViewModelからメンバーを表示するにはどうすればいいですか?

私は、私が取り組んでいるUWPアプリケーションを持っており、ビューのXAML内にあるGrid要素またはTextblock要素にアクセスします。私が遭遇するすべての記事は厳密にデータバインディングに関するものです。私はデータをバインドするつもりはない。私は、ビュー内にある要素に手を加えて操作できるようにしています。

大きな問題は、たとえば、ViewModelからRichEditBoxを操作するMVVMの方法を見つけることです。この特定のコントロールは、XAMLを通じて完全に操作することはできず、コードを使用する必要があります。

だから、基本的に、ViewModelからこれらのオブジェクトへの参照を取得するにはどうすればよいですか?

+3

MVVMについて詳しく知る必要があります。 MVVMの背後にある考え方は、ビュー(UI)とビューモデル(プレゼンテーションロジック)を分離することです。つまり、ViewModelはビュー内で起こっていることを認識していないため、答えは「まったくありません。コマンドと通知可能なプロパティがあり、ビューとの通信に使用します。アタッチされたプロパティのように、それを回避するために利用できる他のツールがあります。添付プロパティはXAMLのユーザーコントロールにアタッチすることができ、プロパティまたはコマンドをバインドすることができます。 – Tseng

+1

複雑で汎用的なソリューションがあれば、ユーザーコントロールを行うことができます。ユーザーコントロールでは、コードビハインドを使用して必要なロジックをすべて配置し、依存プロパティを公開してコマンドとプロパティをバインドすることができます。ユーザーコントロールとコードの背後にあるhttp://stackoverflow.com/a/35983746/455493とhttp://stackoverflow.com/a/35395128/455493に関するよくある質問については、私の回答を参照してください。 – Tseng

答えて

5

MVVMの全体のポイントは、ビューとビューモデルを分離することです。

ビューモデルからのデータバインドではできないことがあれば、フォームのコードの中にコードを置くことができます。