适用于多个类的单个DataTemplate

时间:2017-03-04 20:36:46

标签: wpf datatemplate

我有一个绑定到DataTemplate的父类。从父类我已经派生了几个子类,我想在整个一个DataTemplate中呈现它们,因为它们非常相似。

<DataTemplate DataType="{x:Type local:ParentClass}">
...
<TextBox Text="{Binding Path=TemperatureText}" ../>
...
</DataTemplate>

TemperatureText是一个不在父类中的属性,但仅在某些子类中。创建不拥有该属性的子类时,会生成以下错误消息:

BindingExpression path error: 'TemperatureText' property not found on 'object...

但是,我不想为所有子类创建单独的DataTemplate,因为有很多子类。还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

我看到两种解决方案。

  1. 您可以创建另一个派生自您父类的抽象类,该类具有TemperatureText属性,并从中派生所有具有该属性的现有类。最终会得到两个DataTempates - 一个用于具有TemperatureText属性的类,另一个用于用于ohter类的。

  2. 只需将TemperatureText属性移动到父类,并在某些派生类中将其保留为空