我有一个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>

wpf - 如何使用Caliburn.Micro将多个ViewModel绑定(bind)到Expander中?-LMLPHP

但是,当我将ItemsControlDataTemplate设置为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>

wpf - 如何使用Caliburn.Micro将多个ViewModel绑定(bind)到Expander中?-LMLPHP

问题是我将有很多项目,它们的内容将足够大以填满整个屏幕,那么如何获得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/

10-17 01:11