WPF设计时数据绑定到样本数据

本文关键字:样本 样本数 数据 数据绑定 WPF | 更新日期: 2023-09-27 18:03:36

WPF, c#, .Net 4.52, Visual Studio 2015, MVVM, Prism/Unity, Telerik UI for WPF -所以我的列表框实际上是一个"RadListBox"控件

基于以下类伪结构,在运行时从数据库调用中填充:

<Process>
    <Steps>
        <Step>
            <Submodules>
                <Submodule>
                <Submodule>
                <Submodule>
            </Submodules>
        </Step>
        <Step>
            <Submodules>
                <Submodule>
            </Submodules>
        </Step>
    </Steps>
</Process>

我有一个视图模型,其属性名为SelectedStep,它表示当前步骤。类型为Step

我有一个列表框控件的视图,其ItemsSource属性绑定到SelectedStep.SubModules。在运行时工作得很好,并显示所选步骤的子模块列表。

但是我想在设计时看到子模块的列表,这样我就可以样式列表。因此,我在一个名为Step的文件中创建了一些示例数据。Xaml,其结构看起来就像这样:

<Step>
    <Submodules>
        <Submodule>
        <Submodule>
        <Submodule>
    </Submodules>
</Step>

这里只定义了一个步骤,因为我只打算在设计时显示单个步骤的子模块。没有正常运行时的选择步骤。

为了能够绑定到示例数据,我在列表框中添加了以下属性:d: DataContext = " {d: DesignData源= Step.xaml}"

与列表框的ItemsSource="{Binding SelectedStep。SubModules}"这在运行时是正确的,我在设计时没有看到任何东西。我必须将其更改为ItemsSource="{Binding SubModules}"以在设计时查看数据。但是这会在运行时破坏视图。

我如何克服这个问题,因为SelectedStep没有在设计时设置?

谢谢,克里斯。

WPF设计时数据绑定到样本数据

您将d:DesignData分配给DataContext属性,因此您必须在那里传递视图模型。的一步。Xaml应该是这样的:

<YourViewModel>
    <YourViewModel.SelectedStep>
        <Step>
            <Submodules>
                <Submodule>
                <Submodule>
                <Submodule>
            </Submodules>
        </Step>
    </YourViewModel.SelectedStep>
</YourViewModel>