我有一个绑定到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,因为有很多子类。还有其他选择吗?
答案 0 :(得分:2)
我看到两种解决方案。
您可以创建另一个派生自您父类的抽象类,该类具有TemperatureText属性,并从中派生所有具有该属性的现有类。最终会得到两个DataTempates - 一个用于具有TemperatureText属性的类,另一个用于用于ohter类的。
只需将TemperatureText属性移动到父类,并在某些派生类中将其保留为空