谁应该负责在usercontrol上填充数据?

时间:2012-03-20 09:41:26

标签: wpf user-controls

我觉得有点愚蠢的问这个,但我找不到最好的解决方案:

在WPF应用程序中,我有一个包含用户控件的窗口。 usercontrol有一个ListBox和一个DataGrid。 ListBox是从StaticResource填充的,只要在ListBox中选择了某些内容,就会在服务中进行查找,返回要在DataGrid中填充的数据。

确定。我可以轻松地在usercontrol中引发一个事件,让主窗口监听它。然后,该窗口可以查找服务中的数据,然后在usercontrol上调用一些populate / databind方法,然后可以更新其DataGrid。这将所有责任都放在主窗口上。

我确实喜欢分离关注;)这不是主窗口应该关心的事情。如果这不是用户控件,我会使用依赖注入来为它提供对可以获取数据的服务的引用。

你觉得我应该怎么做?如果我要去DI方式,我将如何在我的usercontrol中注入服务(我可以想到几种方法,但最佳做法是什么?)关于这个主题的任何好读物?

1 个答案:

答案 0 :(得分:2)

可接受的方法是创建ViewModels(基于MVVM架构)。 ViewModels是专门为数据绑定而设计的对象。

关于这个问题的一些阅读:

Starting Tutorial

A framework for MVVM

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