d:DesignData问题,在使用Expression Blend 4添加样本设计数据后,Visual Studio 2010无法构建

时间:2010-05-21 18:58:37

标签: visual-studio expression-blend

VS 2010解决方案和Silverlight项目构建正常,然后:

  1. 我在Expression Blend 4中打开MyView.xaml视图
  2. 从类中添加样本数据(我使用在同一项目中定义的类)
  3. 在使用Expression blend 4添加新的样本设计数据后,一切看起来都很好,您可以在EB 4中看到添加的样本数据,您也可以在VS 2010设计器中看到数据。

    关闭EB 4,接下来的VS 2010版本给了我这个错误:

     Error 7 XAML Namespace http://schemas.microsoft.com/expression/blend/2008 is not resolved. C:\Code\source\...myview.xaml
    

    和:

    Error 12 Object reference not set to an instance of an object. ... TestSampleData.xaml
    

    当我打开TestSampleData.xaml时,我发现用于定义样本数据的类的命名空间无法识别。

    但是这个命名空间和类本身存在于同一个项目中!

    如果我从MyView.xaml中删除设计数据:

    d:DataContext="{d:DesignData /SampleData/TestSampleData.xaml}"
    

    它构建正常,这次可以识别TestSampleData.xaml中的命名空间吗? 然后如果添加:

    d:DataContext="{d:DesignData /SampleData/TestSampleData.xaml}" 
    

    我再次在VS 2010设计器示例数据中看到,但是下一次构建失败,我再次看到工作室无法在包含示例数据的TestSampleData.xaml中找到命名空间。

    这个循环让我发疯。我在这里遗漏了什么,是不是可以让你的类在MyView.xaml视图的同一个项目中定义样本设计数据?

    欢呼声 Valko

2 个答案:

答案 0 :(得分:6)

我知道这是一个古老的问题,但是你的xam中是否有行mc:Ignorable =“d”?如果没有这一行,您将收到此错误。

答案 1 :(得分:0)

添加此命名空间

xmlns:SampleData="clr-namespace:Expression.Blend.SampleData.TestSampleData"

将此资源添加到资源字典

<SampleData:TestSampleData x:Key="TestSampleData" d:IsDataSource="True"/>

在你的xaml

中像这样引用
d:DataContext="{Binding Source={StaticResource TestSampleData}}"

我意识到这是一个古老的问题,但我希望这有助于某人。