[英]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.