2010-04-06 75 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