问题描述
我正在尝试从控制台应用程序启动 WPF 应用程序,并希望在 App.xaml.cs
而不是 App.xaml
文件中定义 ResourceDictionary。
这就是我的 ResourceDictionary 的样子。
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Styles/General.xaml" />
</ResourceDictionary.MergedDictionaries>
<DataTemplate DataType="{x:Type vm:Appviewmodel}">
<views:AppView/>
</DataTemplate>
<DataTemplate DataType="{x:Type vm:Activityviewmodel}">
<views:ActivityView/>
</DataTemplate>
</ResourceDictionary>
这是我想出来的。
public App()
{
Resources.MergedDictionaries.Add(new ResourceDictionary { Source = new Uri("/AssemblyName;component/Styles/General.xaml",UriKind.Relative) });
Resources.Add("appView",new DataTemplate { DataType = typeof(Appviewmodel),VisualTree = new FrameworkElementFactory(typeof(AppView)) });
Resources.Add("activityView",new DataTemplate { DataType = typeof(Activityviewmodel),VisualTree = new FrameworkElementFactory(typeof(ActivityView)) });
}
总的来说,它似乎有效。
在 App.xaml
中定义 DataTemplates 时,导航按我的预期工作。
一旦我切换到 App.xaml.cs
版本,视图就不会加载。屏幕上只显示我的 viewmodel 的类名。
我想 VisualTree = new FrameworkElementFactory(typeof(ActivityView)
是我犯错的地方...我错过了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)