У меня есть пользовательский элемент управления, который определяет ContentControl следующим образом:
<ContentControl x:Name="PART_contentHost" Grid.Row="1"/>
В модели представления я получу модель представления, которая будет отображаться внутри элемента управления контентом. Чтобы установить связь с представлением, у меня есть шаблон данных, который устанавливает связь между ними обоими.
<DataTemplate DataType="{x:Type ViewModels:Test1ViewModel}">
<Views:Test1View />
</DataTemplate>
Это означает, что я хочу, чтобы Test1ViewModel отображался внутри contentControl. Я не могу установить это в своем коде С#.
//this gets the contentControl from de template
contentHost = this.Template.FindName(contentHostName, this) as ContentControl;
//this assigns the test1ViewModel
contentHost.Content = content
Что мне не хватает?
<DataTemplate>
не устанавливает содержимое, он устанавливаетDataContext
. Все, что он делает, это говорит WPF, что когда он пытается отобразитьTest1ViewModel
в VisualTree, он должен отрисовать его с помощьюTest1View
и установитьDataContext
(уровень данных) заTest1View
в качестве ViewModel. - person Rachel   schedule 18.03.2013