2012-07-26 84 views
0

我的Prisam应用程序'初始化模块'successFuly模块视图调用通过查看模块填充。没有设置detacontex视图module.To添加MODUL 但装载仪的看法,我可以用这个代码:如何使用棱镜wpf mvvm在模块中绑定dataviewmodel?

protected override void ConfigureModuleCatalog() 
     { 
      base.ConfigureModuleCatalog(); 
      ModuleCatalog moduleCatalog = (ModuleCatalog)this.ModuleCatalog; 
      moduleCatalog.AddModule(typeof(ModuleR1Customer.ViewModule.CustomerViewModules)); 
      moduleCatalog.AddModule(typeof(ModuleR2Order.ViewModule.OrderViewModules)); 
     } 

如何解决这个问题呢? 请帮帮我。

+0

你的问题还是有点有点不清楚,你能否给我们更多的细节? – HichemSeeSharp 2012-07-26 09:40:06

+0

在xaml文件视图模型中没有load.how使用视图模型来定义detacontex? – Tulsi 2012-07-26 09:44:00

+0

根据你的评论我改变了我的答案 – HichemSeeSharp 2012-07-26 09:54:30

回答

0

这就是你所需要的。 - 创建一个通用接口IViewModelIView以及该视图的特殊界面(ITiersView)。通过实现您的特殊界面,您的浏览视图代码后面应该如下:

 public interface IViewModel 
{ 
} 

public interface IView 
{ 
    IViewModel ViewModel 
    { 
     get; 
     set; 
    } 
} 

public interface ITiersView : IView 
{ 
} 

    //My View 
    public partial class Tiers : UserControl , ITiersView 
    { 
     public Tiers(ITiersViewModel tiersViewModel) 
     { 
      InitializeComponent(); 
      ViewModel = tiersViewModel; 
     } 

     public SmartStock.Infrastructure.IViewModel ViewModel 
     { 
      get 
      { 
       return (ITiersViewModel)DataContext; 
      } 
      set 
      { 
       DataContext = value; 
      } 
     } 
    } 

为了使这个负载,你需要使用Unity container在modulinit类是这样的:

 _container.RegisterType<ITiersView, Tiers>(); 
     _container.RegisterType<ITiersViewModel, TiersViewModel>(); 
     IRegion Content = _regionManager.Regions[RegionNames.ContentRegion]; 
     var TiersView = _container.Resolve<ITiersView>(); 
     RibbonRegion.Add(TiersView);