使用HeaderedContentControls获取ItemsControl以仅显示itemsPresenter中的标题

时间:2010-11-03 15:32:24

标签: c# wpf grid itemscontrol

我有一个带有HeaderedContentControl的ItemsControl作为项目。在这里,我现在只想呈现每个HeaderedContentControl的标题。使用ItemsPresenter我得到了当前显示标题和内容的默认模板。我怎样才能绕过这种行为?我可以以某种方式指示ItemsPresenter使用仅显示标题的本地模板吗?我曾尝试将新模板作为资源添加到ItemsPresenter,但它忽略了......

1 个答案:

答案 0 :(得分:0)

因此,如果我理解正确,您只想显示标题。我不确定为什么你不会只在没有HeaderedContentControl的ItemsControl中绑定标头的值。但是你可以将ItemTemplate的DataTemplate留空。

为此而来:

<ItemsControl ItemsSource="{Binding PersonList}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <HeaderedContentControl>
                <HeaderedContentControl.Header>
                    <TextBlock Text="{Binding PersonName}" Foreground="Blue" />
                </HeaderedContentControl.Header>
                <ItemsControl ItemsSource="{Binding FriendList}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Name}" />
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </HeaderedContentControl>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

你会这样做:

<ItemsControl ItemsSource="{Binding PersonList}">
        <ItemsControl.ItemTemplate>
        <DataTemplate>
            <HeaderedContentControl>
                <HeaderedContentControl.Header>
                    <TextBlock Text="{Binding PersonName}" Foreground="Blue" />
                </HeaderedContentControl.Header>
                <ItemsControl ItemsSource="{Binding FriendList}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate /> <!-- Important change -->
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </HeaderedContentControl>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>