2012-07-26 68 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);