Как настроить Contentpresenter во вложенном ControlTemplate? - PullRequest
2 голосов
/ 27 марта 2012

У меня есть следующий код:

<Setter Property="Template">
  <Setter.Value>
    <ControlTemplate TargetType="{x:Type ListBoxItem}">
      <Button>
        <Button.Template>
          <ControlTemplate>
            <DockPanel>
              <Image Source="{...}"/>
              <ContentPresenter .../>
            </DockPanel>               
          </ControlTemplate>
        </Button.Template>
      </Button>
    </ControlTemplate>
  </Setter.Value>
</Setter>

Мне нужна кнопка внутри шаблона для возможности привязки.Вложенный шаблон определяет внешний вид.

Вопрос: <ListBoxItem Content="Start"/> не работает с кодом выше.Мне нужно что-то вроде корневого Contentpresenter, который ссылается на Contentpresenter внутри шаблона кнопки.Как я могу это сделать?

Заранее спасибо!

1 Ответ

2 голосов
/ 27 марта 2012
<Setter Property="Template">
  <Setter.Value>
    <ControlTemplate TargetType="{x:Type ListBoxItem}">
      <Button>
        <Button.Template>
          <ControlTemplate>
            <DockPanel>
              <Image Source="{...}"/>
              <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}, Path=Content}"/>
            </DockPanel>               
          </ControlTemplate>
        </Button.Template>
      </Button>
    </ControlTemplate>
  </Setter.Value>
</Setter>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...