我有一个XAML View ,该 View 应包含其他 View 的实例,并且这些 View 应显示在列表中,每个列表都包含在自己的Expander
中。我正在使用Caliburn.Micro和MEF设置所有组件。ItemsControl
本身可以正常工作(正确显示 View 的内容):
<ItemsControl ItemsSource="{Binding CursorTools}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentControl cal:View.Model="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
但是,当我将
ItemsControl
的DataTemplate
设置为Expander
时,Caliburn不再“查找” View 模型的 View (因此扩展器为空): <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
来正确设置其内容? 最佳答案
Expander
实际上是ContentControl
,因此应该可以使用:
<Expander Header="{Binding Path=Title}" cal:View.Model="{Binding}" />
关于wpf - 如何使用Caliburn.Micro将多个ViewModel绑定(bind)到Expander中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48404335/