繁体   English   中英

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

[英]WPF Design-time Data Binding to Sample Data

WPF,C#、. Net 4.52,Visual Studio 2015,MVVM,Prism / Unity,用于WPF的Telerik UI-所以我的列表框实际上是“ 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 Source = Step.xaml}”

列表框的ItemsSource =“ {Binding SelectedStep.SubModules}”在运行时是正确的,因此在设计时看不到任何东西。 我必须将其更改为ItemsSource =“ {Binding SubModules}”才能在设计时查看数据。 但这在运行时破坏了视图。

由于在设计时未设置SelectedStep,如何解决此问题?

谢谢克里斯

您正在将d:DesignData分配给DataContext属性,因此必须在其中传递视图模型。 Step.xaml应该看起来像这样:

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

然后您的绑定应该像在运行时一样工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM