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没有在设计时设置?
谢谢,克里斯。
您将d:DesignData
分配给DataContext
属性,因此您必须在那里传递视图模型。的一步。Xaml应该是这样的:
<YourViewModel>
<YourViewModel.SelectedStep>
<Step>
<Submodules>
<Submodule>
<Submodule>
<Submodule>
</Submodules>
</Step>
</YourViewModel.SelectedStep>
</YourViewModel>