Xaml 未知生成错误';密钥不能为空';

Xaml 未知生成错误';密钥不能为空';,xaml,Xaml,我的列表框有一个数据模板,我必须使用项目资源来创建所有标签。如果我删除对资源的引用,只键入标签的文本,就不会有错误。如果我尝试使用这些资源,就会出现上述错误 以下是数据模板: <DataTemplate x:Key="CheckBoxDatePickerItemTemplate"> <Border BorderThickness="1" CornerRadius="3" BorderBrush="{StaticResource GreenBorderBrush}">

我的列表框有一个数据模板,我必须使用项目资源来创建所有标签。如果我删除对资源的引用,只键入标签的文本,就不会有错误。如果我尝试使用这些资源,就会出现上述错误

以下是数据模板:

<DataTemplate x:Key="CheckBoxDatePickerItemTemplate">
    <Border BorderThickness="1" CornerRadius="3" BorderBrush="{StaticResource GreenBorderBrush}">
        <StackPanel Orientation="Horizontal" Background="#208897EB" MinWidth="370">
            <CheckBox Focusable="False" IsChecked="{Binding IsChecked}" VerticalAlignment="Top"/>
            <ContentPresenter Content="{Binding Name, Mode=OneTime}" Margin="2,2" Width="140" VerticalAlignment="Top"/>
            <StackPanel Orientation="Vertical" Visibility="{Binding DateDataVisible}">
                <StackPanel Orientation="Horizontal">
                    <CheckBox IsChecked="{Binding IncludeNullDates}" VerticalAlignment="Center" Focusable="False"/>
                    <Label Content="{x:Static resx:Resources.Label_IncludeEmptyDates}" Margin="2,2" Width="170" VerticalAlignment="Center"/>
                </StackPanel>
                <StackPanel Orientation="Horizontal">
                    <ContentPresenter Content="{x:Static resx:Resources.Label_From}" Margin="2,0" Width="50" VerticalAlignment="Center"/>
                    <DatePicker SelectedDate="{Binding StartDate}" Margin="2,2" Width="150" />
                </StackPanel>
                <StackPanel Orientation="Horizontal">
                    <ContentPresenter Content="{x:Static resx:Resources.Label_To}" Margin="2,0" Width="50" VerticalAlignment="Center"/>
                    <DatePicker SelectedDate="{Binding EndDate}" Margin="2,2" Width="150" />
                </StackPanel>
            </StackPanel>
        </StackPanel>
    </Border>
</DataTemplate>


需要注意的一点是,我们正在使用其他XAML文件中的资源,没有任何问题。但是,此文件是一个资源字典,并添加到app.xaml资源中。这个错误是怎么回事?

我们正在一个团队中处理这个项目,我只是复制了这行代码以使用资源。。。我只是忘了复制xmlns属性。我觉得奇怪的是,这个错误并不是真正的描述性错误,也没有给出任何关于问题所在的真正提示


这个故事的寓意是:如果复制代码行,请确保对名称空间的所有引用也被复制。

旧帖子,但对于通过谷歌搜索到此结束的其他人来说。。。我得到了同样的错误,结果对我来说有些不同

我使用完全限定的语法绑定到属性,因为绑定中没有目标对象。然而,我是用速记来做的,这显然是完全限定语法所不允许的。我有这样的想法:

{Binding (cmn:ElementData.ID)}
我把它改成:

{Binding Path=(cmn:ElementData.ID)}
轰的一声,神秘的错误消失了,一切都按预期进行。显然,不要用速记法处理这件事很重要


感谢at链接,他的评论让我知道了这一点。

这只是一个随机想法,请确保首先声明所有引用的资源,即在您的资源字典中的
DataTemplate
上方。我找到了。。。我没有为resx添加xmlns。Oops:sI由于在Source={x:Static l:MainResource.Select}中设置了错误的资源位置而得到了相同的错误。错误消息是误导性的,而不是指出错误所在:SThanks,这为我修复了错误。考虑到在参考资料部分,每个项目都需要一个
x:Key=“…”
属性,这个错误消息对于这种情况来说真的很糟糕。我之所以有这个错误消息,是因为我删除了对诊断设置的引用,但仍然使用了该设置。谢谢,多年前我遇到过这个问题,但它再次困扰了我。。。滚动到你的帖子时,我的大脑突然产生了连接!啊,WPF很有趣-sJust击中了同样的东西。注意在XAML中的铸造。有龙