给定以下 VM 类层次结构
public abstract class BaseClass {}
public class SubClass : BaseClass {}
public class OtherSubClass : BaseClass {}
我想使用 ContentPresenter 根据 DataContext 的类型选择 DataTemplate。它应该为 SubClass 选择一个模板,并为 BaseClass 的所有其他子类选择不同的模板。我使用以下实现:
<ContentPresenter>
<ContentPresenter.Resources>
<DataTemplate DataType="{x:Type BaseClass}">
...
</DataTemplate>
<DataTemplate DataType="{x:Type SubClass}">
...
</DataTemplate>
</ContentPresenter.Resources>
</ContentPresenter>
这可行,但我不确定这个实现有多傻瓜证明。
根据DataType选择DataTemplate的规则是什么?我搜索了很多但找不到答案。我可以想象使用具有最具体匹配类型的数据模板,但如果我有证据证明这一点,我会感觉更好(并且它与 DataTemplates 的顺序或 WPF 的心情等其他内容无关)。
最佳答案
关于wpf - 如果多个匹配,则根据 DataType 选择哪个 DataTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55365795/