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使其更简单。