我試圖找出在MVVM中耦合我的視圖和ViewModels的最佳方法,並且我已經使用鍵入了ViewModel優先方法,輸入 DataTemplates,如this article和this answer中所述。我使用Prism,並有多個模塊,它們有自己的項目/類庫。我應該在哪裏定義我的數據模板?
我的問題是:我的DataTemplates應該放在我的解決方案中?
- 我應該把在資源字典,其生活在具有類型/的ViewModels它呈現在同一個項目中的DataTemplates?
- 我應該把DataTemplates放在一個資源字典中,該字典位於具有應用程序的MainWindow(即Shell.xaml)的項目中?
- 是否應將這些資源字典添加到
App.Current.MainWindow.Resources.MergedDictionaries
?
我希望這是足夠的信息來描述我正在嘗試做什麼。
更新:查看所選答案的評論。
嘿,謝謝你的建議。我前段時間閱讀過這篇文章,並使用了Rachel在那裏描述的方法。我有一個帶有主題文件夾的基礎結構項目,我在「資源字典」中存儲了我的樣式。問題是這個基礎設施項目被我所有的其他項目/模塊引用。爲了使用類型化的'DataTemplates',我需要引用包含我的ViewModels的項目,這意味着創建一個循環依賴項。我應該創建一個單獨的項目來保存'DataTemplates'嗎? – 2012-03-04 08:30:52
我想你可以在模塊的程序集中創建文件夾主題。我在當前項目中這樣做 - 我在單獨的UI組件中共享模板,幾乎每個模塊的程序集都有它自己的Themes文件夾 – chopikadze 2012-03-04 09:15:05
好的,這聽起來像是要走的路!謝謝,我感謝你的建議。我會看看如果我能得到它的工作。 – 2012-03-04 09:26:16