2016-03-22 4 views
1

私は、AppのView Model内からRichEditBoxコントロールにアクセスする方法を理解しようとしています。これは、アンチパターンを使用しないとすべて可能ですか?ViewModelからRichEditBoxコントロールにアクセスする方法は?

View Modelでコントロールにアクセスするには、View Modelインスタンス内のプロパティに渡すしかありません。たとえば:

public MainView() 
{ 
    this.InitializeComponent(); 

    // Instantiate the ViewModel: 
    MyViewModel vm = new MainViewModel(); 
    { 
     myRichEditBox = this.richEditBoxElement; 
    } 
} 

は、だから今MainViewModelインスタンス(VM)は、私はビューモデルの中から操作しようとしていますRichEditBoxを指すmyRichEditBoxと呼ばれるフィールドが含まれています。これはそれにアクセスする適切な方法ですか、それとも反パターンですか?それにアクセスするより良い方法はありますか?

+0

あなたがのviewmodelからUI要素へのアクセスを持ってする必要はありませんあなたが達成しようとしている何 – Domysee

+0

。?。私はTextBoxを使用していましたが、これは問題ではありませんでしたが、RichEditBoxはC#コードによる操作が必要です。データを書き込もうとしています私のデータベースをこのコントロールとの間でやりとりします。 – JonathanR33D

+0

あなたは何を達成しようとしていますか? – Domysee

答えて

0

RichEditBoxはデータバインディングのために作られていません:(あなたはviewmodelの方のビューからコントロールを公開することはありませんしかし、それはの略MVVMすべてに反するので、箱から出して。

人々のいくつかのソリューションがあります誰があなたはこの試みを与える可能性がバインド可能なRichEditBoxesを作成し、次の場合まあ http://www.codeproject.com/Articles/66054/A-Bindable-WPF-RichTextBox(自分が例を試していない)

+0

ありがとうございます。私は今はテキストボックスに行くと思います。それは実際に私が瞬間にする必要があるもののために働くでしょう。私は今RichEditBoxが実際に何をするように設計されたのか理解しています。 – JonathanR33D

+0

しかし、これまで使用可能なUWPライブラリは、WPF固有のライブラリで許可されているものと比べて非常に基本的なものです。私はなぜ多くの開発者がそれを採用しようとしていないのか分かりました。 SMH ... – JonathanR33D