【问题标题】:Get ItemsControl with HeaderedContentControls to show only Header in the itemsPresenter使用 HeaderedContentControl 获取 ItemsControl 以在 itemsPresenter 中仅显示 Header
【发布时间】:2010-11-03 15:32:24
【问题描述】:

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

【问题讨论】:

    标签: c# wpf grid itemscontrol


    【解决方案1】:

    所以如果我理解正确,你只想显示标题。我不完全确定为什么不绑定到没有 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>
    

    【讨论】:

    • 感谢您尝试回答我的问题。我有点模糊。 itemscontrol 中的项目实际上是 headeredcontentcontrols,并且在 itemscontrol 的 controltemplate 中,我希望有一个 itemspresenter 来仅显示所有标题。为什么?说来话长。无论如何,我现在已经离开了这条赛道......无论如何,谢谢!
    猜你喜欢
    • 2011-04-13
    • 2011-09-05
    • 2016-10-24
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多