将我的多窗口WPF应用程序转换为一个窗口?

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

我个人更喜欢使用作为我的内容区域,并根据用户当前的“窗口”交换活动内容

我在博客上有一个你可以看一下的例子 ,但基本组件看起来像这样:

视图模型:

 ObservableCollection AvailableScreens; IViewModel ActiveScreen; ICommand SetActiveScreenCommand; 

有些XAML看起来像这样:

  

我通常使用DataTemplates来告诉WPF如何绘制每个ViewModel

            

您可以使用AvalonDock等对接框架,它模仿Visual Studio的行为。