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