Доступ к тексту WPF GroupItem для преобразования в шаблон - PullRequest
0 голосов
/ 14 апреля 2009

Я настраиваю внешний вид группировки в ListBox. В ListBox.Resources я объявил что-то вроде (форматирование удалено):

<Style TargetType="{x:Type GroupItem}">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type GroupItem}">
        <StackPanel Orientation="Vertical">
          <!-- Group label -->
          <ContentPresenter />
          <!-- Items in group -->
          <ItemsPresenter />
        </StackPanel>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

Фактическая метка группы не очень удобочитаема, и я хотел бы использовать преобразователь значений, чтобы сделать ее более презентабельной. Однако я не могу найти способ получить этот текст и преобразовать его.

Я полагаю, что Binding позволит мне использовать конвертер.

Я пытался заменить ContentPresenter выше на подобные ...

<TextBlock Text="{TemplateBinding Content}"/>

<TextBlock Text="{Binding}"/>

... и многие другие, но безрезультатно. Есть предложения?

1 Ответ

2 голосов
/ 14 апреля 2009

Ну, это не просто типично. Я нашел ответ вскоре после публикации ...

<TextBlock Text="{Binding Path=Content.Name,
  RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=GroupItem},
  Converter={StaticResource MyConverter}}"/>

Иногда просто процесс запроса вопроса извлекает ответ из воздуха. В этом случае просмотр исходного кода GroupItem в .NET Reflector сделал свое дело.

Надеюсь, кто-то еще найдет этот крайний случай полезным. Тем не менее, было бы намного лучше, если бы GroupItem выставил свойство для этого напрямую.

Я по-прежнему буду давать правильный ответ всем, кто знает более хороший способ сделать это.

...