我有一个XAML视图,应该包含其他视图的实例,这些视图应该显示在列表中,每个视图都包含在自己的Expander
中。我使用Caliburn.Micro和MEF来设置所有组件。
ItemsControl
本身工作正常(正确显示视图的内容):
<ItemsControl ItemsSource="{Binding CursorTools}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentControl cal:View.Model="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
但是,当我将ItemsControl
&#39; DataTemplate
设为Expander
时,Caliburn不会再发现&#34; viewmodel的视图(因此扩展器为空):
<ItemsControl ItemsSource="{Binding CursorTools}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<!--<ContentControl cal:View.Model="{Binding}" />-->
<Expander Header="{Binding Path=Title}">
<Expander.ContentTemplate>
<DataTemplate>
<ContentControl cal:View.Model="{Binding}" />
</DataTemplate>
</Expander.ContentTemplate>
</Expander>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
问题是我会有很多项目,而且他们的内容会足够大以填满屏幕,那么如何让Expander
正确设置其内容?
答案 0 :(得分:2)
Expander
实际上是ContentControl
所以这应该有效:
<Expander Header="{Binding Path=Title}" cal:View.Model="{Binding}" />