2010-11-03 2 views
0

У меня есть элемент ItemsControl с элементами HeaderedContentControl как элементы. В этом теперь я хочу представить только заголовки каждого HeaderedContentControl. Используя ItemsPresenter, я получаю шаблон по умолчанию, который в настоящее время показывает как заголовок, так и содержимое. Как я могу обойти это поведение? Могу ли я указать ItemsPresenter каким-то образом на использование локального шаблона, показывающего только заголовки? Ive попытался добавить новый шаблон в качестве ресурса в ItemsPresenter, но он игнорирует это ...Получить ItemsControl с HeaderedContentControls, чтобы показывать только заголовок в itemsPresenter

ответ

0

Итак, если я правильно вас понимаю, вы просто хотите показать заголовок. Я не совсем уверен, почему вы не просто привязываетесь к значению заголовка в ItemsControl без HeaderedContentControl. Но вы можете просто оставить DataTemplate ItemTemplate пустым.

Так подходит для этого:

<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> 
+0

Спасибо за то, чтобы ответить на мой вопрос. Я был немного расплывчатым. Элементы управления itemscontrol на самом деле являются headeredcontentcontrols, а в controltemplate для itemscontrol я хотел иметь itemspresenter, чтобы показывать только все заголовки. Зачем? Это длинная история. Во всяком случае, Ive оставил этот трек сейчас ... спасибо в любом случае! –

 Смежные вопросы

  • Нет связанных вопросов^_^