未知构建错误'密钥不能为空'

时间:2011-06-06 14:27:03

标签: xaml

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

以下是数据模板:

<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资源中。这个错误是什么?

2 个答案:

答案 0 :(得分:43)

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

故事的道德:如果复制代码行,请确保所有对名称空间的引用也被复制。

答案 1 :(得分:0)

旧帖子,但对于其他任何通过Google搜索最终出现的帖子...我都得到了相同的确切错误,结果对我来说却有所不同。

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

{Binding (cmn:ElementData.ID)}

我将其更改为:

{Binding Path=(cmn:ElementData.ID)}

繁荣,神秘的错误消失了,一切都按预期进行。显然,不要为此使用速记...

感谢Andrew Stakhov上的this链接,我的评论告诉了我。

相关问题