2012-03-20 10 views
0

私はこれを尋ねるのはちょっとばかばかしいと感じていますが、これには最高の解決策を見つけるのが難しいです。usercontrolのデータを読み込む責任は誰にありますか?

私はユーザーコントロールを保持するウィンドウを持っています。ユーザーコントロールにはListBoxとDataGridがあります。 ListBoxはStaticResourceから読み込まれ、ListBoxで何かが選択されると、DataGridにデータを取り込むサービスを検索します。

私は簡単にusercontrolのイベントを発生させることができますし、メインウィンドウでそれを聞いてみましょう。そのウィンドウは、サービス内のデータを検索し、UserControlのpopulate/databindメソッドを呼び出してDataControlを更新します。それはすべての責任をメインウィンドウに置きます。

私は懸念の分離が好きです;)これは、メインウィンドウが気にするものではありません。これがユーザーコントロールでなければ、データを取得できるサービスへの参照を与えるために、拘束力のない注入を使用していました。

私は何をすべきだと思いますか?私がDI-wayに行くなら、どうすれば私のusercontrolにサービスを注入できますか(私はいくつかの方法を考えることができますが、ベストプラクティスは何ですか?)

答えて

2

MVVMアーキテクチャに基づいてViewModelsを作成することでこれを実現できます。 ViewModelsは、データバインディング専用に設計されたオブジェクトです。

テーマに関するいくつかの読書:

Starting Tutorial

A framework for MVVM

http://en.wikipedia.org/wiki/Model_View_ViewModel

+0

む〜!情報をありがとう。私はこの小さなアプリのために私は簡単な解決策を見つけるかもしれないと思います。しかし確かに何か私は読んで:)で –

+0

あなたがそれに慣れると、あなたはMVVMを使用して速くそれを行うことができます:) – Bas

関連する問題