我有一個類嚮導,它創建一個在同一個項目中定義頁面的嚮導。 PageViewModel與PageView分開。 PageViewModel是派生自PageViewModelBase抽象類的普通C#類,PageView是UserControl。爲了定義PageViewModel和瀏覽量之間的映射我寫的每一頁下面的代碼在我的項目:如何將DataTemplate添加到資源中?
<Window.Resources>
<DataTemplate DataType="{x:Type OurNewPageViewModel}">
<OurNewPageView />
</DataTemplate>
</Window.Resources>
現在我要添加網頁時,用戶的代碼調用我的嚮導的構造函數嚮導。它意味着將頁面視圖和視圖模型移動到用戶端。例如,爲了創建一個帶有一個頁面用戶的嚮導,將寫入以下代碼: 嚮導usersWizard = new Wizard(new usersViewModel(),new userView()); 問題是我不知道如何在我的構造函數中提供viewModel和View之間的映射。據我所知,我可以用兩種不同的方法來解決這個問題。首先,要使用FrameworkElementFactory但以下代碼不起作用:
//let we have WelcomePageView wpview and WelcomePageViewModel wpviewmodel
FrameworkElementFactory fef = new FrameworkElementFactory(wpview.GetType());
DataTemplate dt = new DataTemplate();
dt.DataType = wpview.GetType();
dt.VisualTree = fef;
base.Resources.Add(wpviewmodel.GetType(), dt);
二,使用XamlReader。我可以使用它創建數據模板,但我不知道如何將其附加到資源。
非常好!這是一個瞭解ioc的超級開始,用自己的引導程序,等等......謝謝:-) – peter70 2016-02-16 19:28:12