2012-08-25 54 views
2

我是WPF和Prism的新手。目前我正在做一个使用Prism和Unity的应用程序,这需要我打开一个新窗口,在这个窗口中我可以输入数据并提交。我创建了一个视图来输入数据。但无法弄清楚如何调用它。如何用Prism和Unity在XAML中打开一个新窗口?

我在XAML如下:

<Button prism:Click.Command="{Binding DataContext.OpenNewWindowCommand}" Grid.Row="2" 
ToolTipService.ToolTip="Click to open New Window." Width="75" > 

我应该在XAML写为了实现这个目标还是我需要写在OpenNewWindow命令一些代码来打开它?

谢谢

回答

1

首先,要注册自己的看法:

container.RegisterType<Object, SupplierEditView>(ModuleViewNames.SupplierEditView, new TransientLifetimeManager()); 

然后在视图模型的命令,你应该写这样的事情:

var regionManager = ServiceLocator.Current.GetInstance<IRegionManager>(); 
      var url = ModuleViewNames.SupplierEditView; 
      var q = new UriQuery(); 
      q.Add("Id", SelectedItem.Id.ToString()); 

      regionManager.RequestNavigate(PrismRegions.Documents, url + q, (e) => 
      { 
       if (e.Error != null) 
        MessageBox.Show(e.Error.ToString()); 

      }); 

ModuleViewNames.SupplierEditView是你的意见名字字典中的字符串

+0

这是不是只显示v在已经打开的窗口中查看? –

+0

@GlenThomas,这取决于地区的类型。在我的情况下它是一个自写区域适配器,它打开一个新选项卡int TabControl –