2010-04-06 71 views
0

我想在ApplicationMainWindow這是一個WPF窗口設置DataContext。當我把它在XML像這樣離開的DataContext空:城堡溫莎在XML配置的動態屬性

<!-- View Models --> 
    <component 
      id="mainwindow.viewmodel" 
      type="ProjectTracking.ApplicationMainViewModel, ProjectTracking" 
      inspectionBehavior="none" lifestyle="transient"> 
    </component> 

    <!-- UI Components --> 
    <component 
      id="mainwindow.view" 
      type="ProjectTracking.ApplicationMainWindow, ProjectTracking" 
      inspectionBehavior="none" lifestyle="transient"> 
    <parameters> 
     <DataContext>${mainwindow.viewmodel}</DataContext> 
    </parameters> 
    </component> 

但是,如果我通過C#這樣來做它的工作原理。

 _Kernel.Register(
      ... 
      Component.For<ApplicationMainWindow>() 
       .DynamicParameters((k,d) => { 
        d["DataContext"] = k[typeof(ApplicationMainViewModel)]; 
        }) 
     ); 

我實例化我的窗前,像這樣:

Window window = _Kernel[typeof(ApplicationMainWindow)] as Window; 

當我通過XML配置溫莎配置離開我的DataContext NULL,但是當我通過代碼來配置它,它就像一個魅力。

我是否需要使用代碼來解決這個問題,還是應該通過XML配置工作?

謝謝,勞爾

回答

1

你定義inspectionBehavior="none"告訴溫莎忽略屬性點注入可選依賴。刪除該屬性將恢復默認行爲,並且datacontext屬性將被注入。

+0

哎呀,我想這就是我得到的複製/粘貼代碼:) 謝謝! – HaxElit 2010-04-07 14:49:59