如何在运行时更改WPF窗口内容

slo*_*ker 0 wpf model-view-controller controls mvvm

我有一个带有四个按钮的窗口来添加,搜索,删除和更新数据库查询.

单击其中一个按钮后,我打开一个新窗口,其中包含针对这些功能的特定WPF控件.

如何在不打开新窗口的情况下执行此操作?一切都应该在一个窗口中发生,只有WPF控件应该更改,并且代码背后.单击"返回"或"执行"后,我想返回主窗口.

Kar*_*ták 6

关键是ContentControl - 您将更改其内容:

<ContentControl Content="{Binding WhatToShow}"/>
Run Code Online (Sandbox Code Playgroud)

在您的视图模型中,您将拥有属性object WhatToShow.

if(some_condition) 
  WhatToShow = new SomeView(someViewModel);
else
  WhatToShow = new AnotherView(anotherViewModel);
Run Code Online (Sandbox Code Playgroud)

或者你可以看看Caliburn.Micro,一个MVVM框架,使屏幕导航更容易.