2012-05-06 2 views
0

У меня есть пользовательский элемент управления, который должен служить в качестве контейнера и выглядит следующим образом:WPF Контейнер управления

<ContentControl ... > 
    <Grid> 
     <Rectangle RadiusX="8" RadiusY="8"> 
      <Rectangle.Fill> 
... 
      </Rectangle.Fill> 
     </Rectangle> 

... 

     <ContentPresenter /> 
    </Grid> 
</ContentControl> 

Когда я использую его в окно, содержимое элементов управления заменяются вместо положенных в ContentPresenter:

<XWpf2:MyContainer Margin="40"> 
     <ListView Margin="16" /> 
</XWpf2:MyContainer> 

Что такое правильный подход, что здесь не так?

+0

Аналогичный вопрос: http://stackoverflow.com/q/10269284 –

ответ

2

Вы устанавливаете Content к Grid, то вы перезаписать Content с ListView. Если вы хотите сохранить эту структуру, вам необходимо назначить ее как ContentControl.Template.

Конечно то же самое можно сказать и о MyContainer, если это UserControl, если вы установите Content, а затем переписать его с ListView весь ваш ContentControl пропадут, а также.

+0

Я получаю содержимое пользовательского элемента управления, когда я помещаю его в ContentControl.Template, но теперь я не вижу содержимого ??? – Dusan

+0

@ Dusan: [Этот вопрос] (http://stackoverflow.com/questions/5758342/) может оказаться полезным, вы, вероятно, все еще что-то переписываете. Я не могу угадать ваш код ... –

+0

@ HB - Решено, кажется, что ContentPresenter должен быть связан, когда в шаблоне - Content = "{Binding RelativeSource = {RelativeSource TemplatedParent}, Path = Content}". Большое спасибо! – Dusan

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