我制作了一个 WPF 应用程序,它根据用户交互打开连续的窗口。例如,第一个 winodw 询问用户想要使用哪个模块,当做出选择并按下按钮时,会打开一个新窗口,显示一些供应商和摘要计数。选择其中一个供应商并按“编辑”按钮将打开另一个窗口,其中显示该供应商的详细信息。单击详细信息,然后单击按钮打开另一个窗口,用户可以在其中更改一些数字等。然后用户关闭该窗口,选择不同的项目并编辑,或者关闭该窗口并选择不同的供应商等。每个窗口都有自己的窗口当前查看模型。我想摆脱所有的窗户层。选项卡控制似乎不是一个好的选择,因为用户必须执行正确的序列等。将其更改为仅使用一个窗口并交换用户在一个窗口中看到的内容的最佳方法是什么例如,当他按下按钮进行编辑等时?
我个人更喜欢使用<ContentControl />
对于我的内容区域,并根据用户当前的“窗口”交换活动内容
I have 我博客上的一个例子 http://rachel53461.wordpress.com/2011/12/18/navigation-with-mvvm-2/你可以看一下,但基本组件如下所示:
视图模型:
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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)