3

我制作了一个 WPF 应用程序,它可以根据用户交互打开连续的窗口。例如,第一个 winodw 询问用户想要在哪个模块上工作,当做出选择并按下按钮时,会打开一个新窗口,显示一些供应商和摘要计数。选择其中一个供应商并按下“编辑”按钮会打开另一个窗口,显示该供应商的详细信息。单击详细信息,然后单击按钮打开另一个窗口,用户可以在其中更改一些数字等。然后用户关闭该窗口,选择不同的项目并进行编辑,或关闭该窗口并选择不同的供应商等。每个窗口都有自己的当前查看模型。我想摆脱所有层的窗户。选项卡控件似乎不是一个好的选择,因为用户必须通过正确的序列等。

4

2 回答 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 回答