0

我正在使用Ninject將視圖模型實例注入到每個視圖的DataContext屬性中,以避免使用ServiceLocator,並且我正在使用以下語法NinjectModule的建議hereWP7和Ninject,如何強制應用程序從IoC容器中獲取視圖

public class TestingModule : NinjectModule 
{ 
    public override void Load() 
    { 
     Bind<MainPage>().ToMethod(ctx => new MainPage() { DataContext = new MainPageViewModel() }).InSingletonScope(); 
    } 
} 

如果我使用:

var x = Kernel.Get<MainPage>(); 

那麼x裏面的DataContext屬性設置爲MainPageViewModel的實例,這是偉大的。

問題是,當瀏覽頁面或啓動時,應用程序無法從DI容器獲取視圖實例,因此在設備上運行應用程序或內部時,DataContext屬性從不會設置在任何視圖中模擬器。

有誰知道我如何攔截視圖的創建,以便我可以強制應用程序從DI容器中檢索視圖實例?

回答

0

您可以添加此行到構造的MainPage:

DataContext = Kernel.Get<MainPageViewModel>(); 
相關問題