C# 为什么我不能设置静态资源';sx:xaml中的名称
我试图在用户控件的资源字典中定义一个视图模型,并将其设置为数据上下文,如下所示:C# 为什么我不能设置静态资源';sx:xaml中的名称,c#,wpf,xaml,C#,Wpf,Xaml,我试图在用户控件的资源字典中定义一个视图模型,并将其设置为数据上下文,如下所示: <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/DMV;component/Controls.xaml"
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/DMV;component/Controls.xaml"/>
</ResourceDictionary.MergedDictionaries>
<vm:TaskViewModel x:Key="taskViewModelKey" x:Name="taskViewModelName" />
</ResourceDictionary>
</UserControl.Resources>
<UserControl.DataContext>
<StaticResourceExtension ResourceKey="taskViewModelKey"/>
</UserControl.DataContext>
但字段“x:Name=”taskViewModelName“显示错误:
无法在此作用域中注册重复的名称“taskViewModelName” 我正在尝试设置datacontext的x:Name,以便仍然可以从代码后面访问它 关于如何修复此错误,有什么建议吗 我正在尝试设置datacontext的x:Name,这样我仍然可以 从代码隐藏处访问它 首先,如果唯一的目标是稍后初始化数据上下文,则无需将视图模型放入参考资料中。只需直接初始化数据上下文:
<UserControl.DataContext>
<vm:TaskViewModel />
</UserControl.DataContext>
我正在尝试设置datacontext的x:Name,这样我仍然可以
从代码隐藏处访问它
首先,如果唯一的目标是稍后初始化数据上下文,则无需将视图模型放入参考资料中。只需直接初始化数据上下文:
<UserControl.DataContext>
<vm:TaskViewModel />
</UserControl.DataContext>
“重复名称‘taskViewModelName’”。确定你没有在别的地方用这个名字吗?@Clemens绝对肯定!此外,您可以通过DataContext属性在代码隐藏中轻松访问TaskViewModel实例,如
(TaskViewModel)DataContext
,因此无需将其包含在UserControl的资源中。感谢info@Clemens使其更简单。“重复名称‘taskViewModelName’”。确定你没有在别的地方用这个名字吗?@Clemens绝对肯定!此外,您可以通过DataContext属性在代码隐藏中轻松访问TaskViewModel实例,如(TaskViewModel)DataContext
,因此无需将其包含在UserControl的资源中。感谢info@Clemens使其更简单。