另一个ContentControl内的WPF ContentControl没有显示

时间:2014-11-04 18:08:31

标签: c# wpf user-controls caliburn.micro

我有一个带有ContentControl的窗口,我用它来模拟一个工作得很好的向导导航。为了重构一些代码,我在一个UserControl中提取了一个表单,我在另一个Window中以完全相同的方式使用了这个表单...

我提取的UserControl在另一个窗口上工作正常(不是向导),但不在Wizard内部的UserControl里面...我在两种情况下都使用ContentControl ......

我没有收到任何错误...我已经调试过并且在两种情况下都调用了构造函数,但是在向导内部它不会出现,只是那样。

简单窗口的代码是:

<Controls:MetroWindow x:Class="Desktop.Views.FilePropertiesViewModel">
  <Grid>
     <ScrollViewer VerticalScrollBarVisibility="Visible">
        <ContentControl x:Name="DocumentPropertyListViewModel" />
     </ScrollViewer>
  </Grid>
</Controls:MetroWindow>

在后面的代码中,在我的Window的构造函数中

public DocumentPropertyListViewModel DocumentPropertyListViewModel { get; set; }
public FilePropertiesViewModel(){
   this.DocumentPropertyListViewModel = new DocumentPropertyListViewModel(File.Properties, false);
}

区别如上所述(作为参考,而不是真实的代码):

<ContentControl x:Name="Wizard"> <!-- Loading plenty of UserControls>
    <ContentControl x:Name="DocumentPropertyListViewModel" />  <!-- One of the UserControls has this -->
</ContentControl>

顺便说一下,我正在使用Caliburn.Micro,这就是为什么我使用ContentControl而不是普通的UserControl引用,我无法弄清楚如何以其他方式做...

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

你可以尝试一下......

<ContentControl x:Name="Wizard"> <ContentControl cm:View.Model="{Binding DocPropListViewProp}" /> </ContentControl>

其中DocPropListViewProp是主窗口中DocumentPropertyListViewModel类型的viewmodel属性 viewmodel

And in the code behind, in the constructor of my Window public DocumentPropertyListViewModel DocumentPropertyListViewModel { get; set; } public FilePropertiesViewModel(){ this.DocumentPropertyListViewModel = new DocumentPropertyListViewModel(File.Properties, false); } 上面的语句仍然困扰着您提供的代码片段,说明您在代码隐藏中使用了它,您的意思是ViewModel吗?

你还在用什么容器用于IoC:MEF,SimpleContainer等......?什么?