Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在将MDITabControl视图替换为其他视图时保持其整体状态?_C#_Wpf - Fatal编程技术网

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我试图实现你的建议,但我遇到了麻烦。看看你是否有兴趣进一步帮助。