2012-03-20 58 views
0

我覺得有點愚蠢的問這個問題,但我很難找到這個最好的解決方案:誰應該負責填充usercontrol上的數據?

在WPF應用程序中,我有一個窗口,其中包含一個用戶控件。 usercontrol有一個ListBox和一個DataGrid。 ListBox從StaticResource填充,並且只要在ListBox中選擇了某項內容,就會在服務中查找返回要在DataGrid中填充的數據。

確定。我可以輕鬆地在usercontrol中引發一個事件,並讓主窗口監聽它。該窗口然後可以查找服務中的數據,然後在usercontrol上調用一些填充/數據綁定方法,然後可以更新其DataGrid。這將所有責任放在主窗口上。

我確實喜歡分離;),這不是主窗口應該關心的問題。如果這不是一個用戶控件,我會使用denpendency injection來給它一個可以獲取數據的服務的引用。

你認爲我應該怎麼做?如果我要去DI方式,我將如何將服務注入到我的用戶控件中(我可以考慮一些方法,但最佳實踐是什麼?)關於此主題的任何好的解讀?

回答

2

這樣做的接受方式是創建ViewModels(基於MVVM架構)。 ViewModels是專門爲數據綁定而設計的對象。

一些閱讀關於這個問題:

Starting Tutorial

A framework for MVVM

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

+0

讓人驚訝!謝謝(你的)信息。我想爲這個小應用程序,我可能會找到一個更簡單的解決方案。但絕對有些東西我會閱讀:) – 2012-03-20 10:01:48

+0

一旦你習慣了它,你可以使用MVVM一樣快速地完成它:) – Bas 2012-03-20 10:02:44