哪个是在wpf mvvm中显示另一个窗口的最佳方式

时间:2015-09-25 12:22:08

标签: c# wpf xaml mvvm

嗨我在wpf mvvm中导航窗口时遇到了一些问题。我有两个wpf窗口,让我们说viewA和viewB。所有相应的视图模型都使用棱镜prism:ViewModelLocator.AutoWireViewModel="True"绑定到视图。

这是我的观点。

<Window x:Class="eBriefcase.WPF.Views.CaseHearing"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:prism="http://prismlibrary.com/"
    prism:ViewModelLocator.AutoWireViewModel="True"
    Title="CaseHearing" Height="300" Width="300">
<Grid>

</Grid>

如果我想转到另一个视图,我创建新窗口并在View Model中使用show function。

ViewB vB_ = new ViewB();
vB_.Show();

当我按下显示另一个表单按钮时,另一个重复的wpf窗口打开。我该如何控制它? 我刚刚研究了WPF只有10天。这是在视图之间导航的正确方法吗?

最好的Rgds, DF

1 个答案:

答案 0 :(得分:0)

答案在你的问题中:

  

我创建新窗口并使用show function

所以显示新窗口。 您对术语view感到困惑。 View不是WPF中的某种对象。它只是MVVM概念的逻辑部分。 您运营的对象包括Windowscontrolspages。 您希望将WPF pages用作数据的不同views。 网上有很多关于WPF pagesNavigationService的手册 这些是您需要的关键字。

BTW,回答标题中的问题:打开窗口的最佳方法是将打开的窗口打包成一些通用的WindowManager并使用

new WindowType(){ DataContext = VM }.Show()