如何使用 Caliburn.Micro 将多个 ViewModel 绑定到 Expander 中?

How to bind multiple ViewModels into Expanders using Caliburn.Micro?

我有一个 XAML 视图,它应该包含其他视图的实例,并且这些视图应该显示在一个列表中,每个视图都包含在它自己的 Expander 中。我正在使用 Caliburn.Micro 和 MEF 来设置所有组件。

ItemsControl 本身工作正常(正确显示视图的 content):

    <ItemsControl ItemsSource="{Binding CursorTools}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <ContentControl cal:View.Model="{Binding}" />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

但是当我将 ItemsControlDataTemplate 设置为 Expander 时,Caliburn 不再 "finds" 视图模型的视图(因此扩展器是空):

    <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}" />