我制作了一个 WPF 应用程序,它可以根据用户交互打开连续的窗口。例如,第一个 winodw 询问用户想要在哪个模块上工作,当做出选择并按下按钮时,会打开一个新窗口,显示一些供应商和摘要计数。选择其中一个供应商并按下“编辑”按钮会打开另一个窗口,显示该供应商的详细信息。单击详细信息,然后单击按钮打开另一个窗口,用户可以在其中更改一些数字等。然后用户关闭该窗口,选择不同的项目并进行编辑,或关闭该窗口并选择不同的供应商等。每个窗口都有自己的当前查看模型。我想摆脱所有层的窗户。选项卡控件似乎不是一个好的选择,因为用户必须通过正确的序列等。
问问题
2277 次
2 回答
4
就我个人而言,我更喜欢将 a<ContentControl />
用于我的内容区域,并根据用户当前的“窗口”换出活动内容
我的博客上有一个示例,您可以查看,但基本组件如下所示:
视图模型:
ObservableCollection<IViewModel> AvailableScreens;
IViewModel ActiveScreen;
ICommand SetActiveScreenCommand;
使用一些看起来像这样的 XAML:
<ContentControl Content="{Binding ActiveScreen}" />
我通常DataTemplates
用来告诉 WPF 如何绘制每个 ViewModel
<Window.Resources>
<DataTemplate DataType="{x:Type local:ModulesViewModel}">
<local:ModulesView />
</DataTemplate>
<DataTemplate DataType="{x:Type local:VendorsViewModel}">
<local:VendorView />
</DataTemplate>
<DataTemplate DataType="{x:Type local:EditVendorViewModel}">
<local:EditVendorView />
</DataTemplate>
</Window.Resources>
于 2013-03-12T15:13:15.757 回答
0
您可以使用模仿 Visual Studio 行为的停靠框架,例如AvalonDock 。
于 2013-03-12T14:24:42.063 回答