我正在重構應用程序以使用屬性注入。這要求我從後面的代碼中創建視圖。最初所有內容都是在XAML中創建的,綁定通過靜態資源設置爲視圖模型。這無法控制注入數據到視圖模型的服務。從代碼隱藏創建usercontrol時找不到靜態資源
這是App.xaml.cs:
public App()
{
this.MainWindow = new MainWindow(new MainWindowViewModel(new DbDataService()));
MainWindow.Show();
}
MainWindowViewModel被設定爲在DataContext。 App.xaml中包含此資源用於在列表框觀看的產品類型類:
<DataTemplate x:Key="DataTemplate" DataType="{x:Type classes:Product}">
的主窗口具有用於每個視圖中的選項卡。
ProductsTab.Content = new MainView(mainWindowViewModel);
當我這樣做,我得到在該線路上的MainView以下錯誤:
<dxe:ListBoxEdit Grid.Column="0" ItemTemplate="{StaticResource DataTemplate}" ...etc... />
「‘上提供價值’系統我有一個選項卡的視圖在主窗口的構造函數創建這樣.Windows.StaticResourceExtension'拋出一個異常。'行號「37」和行位置「31」。「
我曾嘗試過: 我已經嘗試在XAML中創建Tab的視圖,並將其數據上下文設置給父母,但是,我仍然得到此異常。 我已經嘗試將我的靜態資源更改爲動態資源,這在運行時不會導致錯誤,但列表框不會正確顯示信息。
我需要知道的內容: 如何使用靜態/動態資源進行體面注入。 如果有更好的方法來解決這個問題,比如在代碼中創建模板並將它們注入視圖中?
我的一些擔心: 我想爲此應用程序添加依賴注入,但是,我覺得我使用的方法不僅打破了資源,而且打破了MVVM模式。
這是一個這麼簡單的修復!你是一個拯救生命的人,非常感謝你:) – CEvans