<ContentControl Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" >
<DataTemplate DataType="{x:Type ViewModels:anotherViewViewModel}">
<Views:anotherView Content="{Binding}"/>
</DataTemplate>
</ContentControl>
Устанавливает DataTemplate
в качестве фактического содержимого элемента управления контентом.Вам необходимо свойство ContentTemplate
(или установить ресурсы):
<ContentControl Grid.Column="0" Grid.Row="7" Grid.ColumnSpan="3" >
<ContentControl.ContentTemplate>
<DataTemplate DataType="{x:Type ViewModels:anotherViewViewModel}">
<Views:anotherView Content="{Binding}"/>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
, которое работает, только если для свойства Content
ContentControl
задан экземпляр anotherViewModel
.Так как он не связан или что-то в этом коде, я предполагаю, что он все еще нулевой, и поэтому не будет создавать экземпляр вашего представления.
Вы могли бы просто использовать Views:anotherView
непосредственно как @Silvermindпредлагает, но я подозреваю, что вы собираетесь на какое-то динамическое переключение.Если вы хотите придерживаться своего текущего подхода, просто дайте ContentControl
что-то для отображения!
Соответственно, если anotherView
не является также a ContentControl
, это вероятноне имеет свойства Content
, так что set / binding - это нонсенс.anotherView
выберет экземпляр anotherViewModel
в качестве своего DataContext, поскольку он находится в шаблоне данных, который у вас есть, никакого дополнительного кода не требуется.