可以在d:DataContext中使用XmlDataProvider吗?

时间:2010-05-19 17:10:39

标签: wpf xaml

我想知道如何使用XmlDataProvider为Blend 4中的设计时使用提供任意XML数据。我已经尝试了几种方法来指定它,但Blend不会选择它。我的UI元素最终空白。

我意识到Blend具有生成和管理示例数据的功能,但这对我的一些简单用户控件来说是一个很大的开销。我正在寻找在Xaml文件中内联工作的东西(即隐式模式),而不会生成大量额外文件。将XmlDataProvider放入资源然后执行d:DataContext来引用它似乎是一个很好的方法,但我无法使它工作。

我无法使用任何viewmodel类(例如使用d:DesignData或使用ObjectDataProvider),因为它们不会公开所有属性的setter。如果它们是只读的,则无法使用设计时数据设置这些属性。

如何在纯Xaml中构建一个我可以在设计时绑定的模型?

1 个答案:

答案 0 :(得分:0)

如果我理解正确的话,

我通常以这种方式做事,但是,我无法得到你的模型有多复杂,但这种方式可能在设计时为你工作,以便测试特定的数据模板等。

<Window.Resources>
        <XmlDataProvider x:Key="People" XPath="/IDs" >
            <x:XData>
                <IDs>
                    <ID name="A2231" />
                    <ID name="A3dsa" />
                    <ID name="Ad21d" />
                    <ID name="Ad231" />
                </IDs>
            </x:XData>

        </XmlDataProvider>
</Window.Resources>



  <StackPanel Grid.Row="0" Grid.Column="1" DataContext="{StaticResource People}">
            <Label Width="200" Height="200" Content="{Binding XPath=ID/@name}"/>
  </StackPanel>
这是你的意思吗?如果没有,请详细说明。