我觉得有点愚蠢的问这个,但我找不到最好的解决方案:
在WPF应用程序中,我有一个包含用户控件的窗口。 usercontrol有一个ListBox和一个DataGrid。 ListBox是从StaticResource填充的,只要在ListBox中选择了某些内容,就会在服务中进行查找,返回要在DataGrid中填充的数据。
确定。我可以轻松地在usercontrol中引发一个事件,让主窗口监听它。然后,该窗口可以查找服务中的数据,然后在usercontrol上调用一些populate / databind方法,然后可以更新其DataGrid。这将所有责任都放在主窗口上。
我确实喜欢分离关注;)这不是主窗口应该关心的事情。如果这不是用户控件,我会使用依赖注入来为它提供对可以获取数据的服务的引用。
你觉得我应该怎么做?如果我要去DI方式,我将如何在我的usercontrol中注入服务(我可以想到几种方法,但最佳做法是什么?)关于这个主题的任何好读物?
答案 0 :(得分:2)
可接受的方法是创建ViewModels(基于MVVM架构)。 ViewModels是专门为数据绑定而设计的对象。
关于这个问题的一些阅读: