【发布时间】:2010-02-11 13:45:57
【问题描述】:
我使用 Prism 已经有一段时间了,我很享受解耦我的模块是多么容易。
这对视图和视图模型特别有用,因为您可以通过接口注入视图模型,并通过区域管理器注入视图。
不幸的是,这仅在我的视图是完整的用户控件时才有效,除非我在这里遗漏了一些东西(我真诚地希望我是这样)。
但很多时候,我会创建一个 ViewModel 和一个匹配的 DataTemplate。然后其他程序集可以使用这些来组成视图。
我的问题是,如果不引用包含程序集,我就无法引用这些数据模板,所以在我的 xaml 文件中我写了如下内容:
<ResourceDictionary Source="pack://application:,,/......>
当然,这并不是真正的解耦,尽管我尝试确保在我的代码中的其他任何地方都没有引用程序集。
我想到的另一个解决方案是将数据模板放入基础设施项目中,但我也不太喜欢这样,因为我希望属于模块的所有内容都包含在其中(当然接口除外)。
那么,有没有人有好的解决方法,还是我错过了一些 Prism 功能?
【问题讨论】:
标签: wpf dependency-injection prism datatemplate