我想动态地将用户控件加载到内容控件,所以我使用了基于DataTemplate更改usercontrol的“Good Old Method”。
但是在设置ViewModel属性(即绑定到ContentControl内容属性)时,ContentControl正在显示“text”,其中包含相应的viewmodel名称,而不是加载相应的Usercontrol。
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>
Window`s code
<ContentControl Name="content" Content="{Binding Path=VMs,Mode=TwoWay}"/>
现在我不知道究竟是什么问题!!
答案 0 :(得分:1)
您已在Key
上指定了DataTemplate
,因此根据DataTemplate
自动应用Type
。
来自MSDN:
此属性与Style类的TargetType属性非常相似。在不指定x:Key的情况下将此属性设置为数据类型时,DataTemplate将自动应用于该类型的数据对象。请注意,执行此操作时,将隐式设置x:Key。因此,如果为此DataTemplate指定x:Key值,则覆盖隐式x:Key,并且不会自动应用DataTemplate。