C# 如何在将MDITabControl视图替换为其他视图时保持其整体状态?
我将引用中使用的自定义C# 如何在将MDITabControl视图替换为其他视图时保持其整体状态?,c#,wpf,C#,Wpf,我将引用中使用的自定义TabControl,因此请先检查它 这个答案给了我想要的MDI类型视图。选项卡本身可以很好地保留,而视图则显示在屏幕上 但是,这只是main窗口可以显示的两个视图之一。另一个是带有图标的导航视图,用户可以单击该视图打开不同的部分,这些部分在TabControl中作为选项卡打开 因此,问题是,除了链接答案的作用外,如何保存整个选项卡控件(MDI)视图本身的状态?换句话说,我需要能够在这个导航视图和TabControl视图之间自由地来回切换,而不会丢失任何一个视图的状态。但是
TabControl
,因此请先检查它
这个答案给了我想要的MDI类型视图。选项卡本身可以很好地保留,而视图则显示在屏幕上
但是,这只是main窗口可以显示的两个视图之一。另一个是带有图标的导航视图,用户可以单击该视图打开不同的部分,这些部分在TabControl
中作为选项卡打开
因此,问题是,除了链接答案的作用外,如何保存整个选项卡控件
(MDI)视图本身的状态?换句话说,我需要能够在这个导航视图和TabControl
视图之间自由地来回切换,而不会丢失任何一个视图的状态。但是切换会导致MDI视图卸载,然后我会丢失所有选项卡(MDI视图)的状态
main窗口
将其用作可显示的两个视图的内容保持架:
<ContentControl Grid.Row="1"
Content="{Binding CurrentViewModel}" />
CurrentViewModel
被分配了MDITabControlViewModel
或HomeViewModel
的实例。您可以使用相同的选项卡控件,而不是ContentControl
作为视图容器。只需将选项卡标题设置为不可见,并在导航和MDI容器之间切换选项卡即可。@dymanoid有点“手感不足”?这是一个有趣的方法,我会考虑一下。@dymanoid我试图实现你的建议,但我遇到了麻烦。如果您有兴趣进一步帮助,请查看。您可以使用与视图容器相同的选项卡控件,而不是ContentControl
。只需将选项卡标题设置为不可见,并在导航和MDI容器之间切换选项卡即可。@dymanoid有点“手感不足”?这是一个有趣的方法,我会考虑一下。@dymanoid我试图实现你的建议,但我遇到了麻烦。看看你是否有兴趣进一步帮助。