0

我想将用户控件动态加载到内容控件中,所以我使用了基于 DataTemplate 更改用户控件的“Good Old Method”。

但是在设置 ViewModel 属性(即绑定到 ContentControl 内容属性)时,ContentControl 会显示包含相应视图模型名称的“文本”,而不是加载相应的用户控件。

Window的资源

 <dxr:DXRibbonWindow.Resources>
    <DataTemplate x:Key="TYRVM"  DataType="{x:Type VM:ProductTYRViewModel}">
        <views:TYRUserControl/>
    </DataTemplate>
    <DataTemplate x:Key="THORVM" DataType="{x:Type VM:ProductTHORViewModel}">
        <views:THORUserControl/>
    </DataTemplate>
 <dxr:DXRibbonWindow.Resources>

窗口的代码

  <ContentControl Name="content" Content="{Binding Path=VMs,Mode=TwoWay}"/>

现在我不知道到底是什么问题!!

4

1 回答 1

1

您已在上指定 a KeyDataTemplate因此不会基于 自动应用。DataTemplateType

这来自 MSDN:

此属性与 Style 类的 TargetType 属性非常相似。当您将此属性设置为数据类型而不指定 x:Key 时,DataTemplate 会自动应用于该类型的数据对象。请注意,当您这样做时,会隐式设置 x:Key。因此,如果您为此 DataTemplate 分配 x:Key 值,您将覆盖隐式 x:Key 并且不会自动应用 DataTemplate。

链接到 MSDN:DataTemplate.DataType

于 2014-11-18T15:54:59.013 回答