2010-05-18 3 views
2

Вот и проблема.
Учитывая большой/сложный набор данных A, который имеет 3 секции - Общие, Свойства, Разное. Представьте себе 3 решетки для каждого.
Теперь мне нужно повторно использовать раздел «Свойства» вышеуказанного Datatemplate в другом месте. Причины: Чтобы избежать избыточности + убедитесь, что дальнейшие обновления на datatemplate применяются одинаково ко всем обычаям.Как вы создаете DataTemplates/ссылку на дочерний datatemplate в WPF?

Так что, я думаю, что я прошу - это возможность сломать ссылку на дочерний элемент DataTemplate в родительском шаблоне данных. Каков наилучший способ сделать это?

Я нашел один из способов сделать это .. но я не уверен, что это правильный путь или лучший. Проводя его как ответ ниже, чтобы его можно было оценить.

ответ

3

Я использовал ContentPresenter для слота в дочернем datatemplate через его свойство ContentTemplate.

// child 
<DataTemplate x:Key="propertiesVMTemplate"> 
    <toolkit:DataGrid Style= .... // lots of stuff here 
    </toolkit:DataGrid> 
</DataTemplate> 

// parent 
<DataTemplate x:Key="nodeVMTemplate"> 
    ... general section 
     // and the link 
     <ContentPresenter Content="{Binding Properties}" ContentTemplate="{StaticResource propertiesVMTemplate}"/> 

     ...misc section stuff 
</DataTemplate> 
Смежные вопросы