Possible duplicate:
Dataset Inheritance
I have several data types that are not subclasses, and they do not have a common interface, but they have common properties that I want to display in the XAML DataTemplate. However, I know that this is possible ...
<Style x:Key="FooStyle" TargetType="Foo" /> <Style x:Key="EnhancedFooStyle" TargetType="Foo" BasedOn="{StaticResource FooStyle}" /> <Style x:Key="BaseItemStyle"> <Setter Property="Control.Background" Value="Yellow" /> </Style> <Style TargetType="ListBoxItem" BasedOn="{StaticResource BaseItemStyle}" /> <Style TargetType="ComboBoxItem" BasedOn="{StaticResource BaseItemStyle}" /> <Style TargetType="TreeViewItem" BasedOn="{StaticResource BaseItemStyle}" />
But can we do something similar for data templates that do not have the BasedOn property?
<DataTemplate x:Key="CommonTemplate"> </DataTemplate> <DataTemplate DataType="Foo1" BasedOn="{StaticResource CommonTemplate}" /> <DataTemplate DataType="Foo2" BasedOn="{StaticResource CommonTemplate}" /> <DataTemplate DataType="Foo3" BasedOn="{StaticResource CommonTemplate}" />
I know that BasedOn not what we want here, because it is not “founded”, but rather “in” in this scenario, but does not know how to do this in XAML. As I write this, I have an idea, but I feel that using UserControl changing ...
<UserControl x:Key="CommonTemplate" x:Shared="False"> </UserControl> <DataTemplate DataType="Foo1" BasedOn="{StaticResource CommonTemplate}"> <StaticResource ResourceKey="CommonTemplate" /> </DataTemplate> <DataTemplate DataType="Foo2" BasedOn="{StaticResource CommonTemplate}" /> <StaticResource ResourceKey="CommonTemplate" /> </DataTemplate> <DataTemplate DataType="Foo3" BasedOn="{StaticResource CommonTemplate}" /> <StaticResource ResourceKey="CommonTemplate" /> </DataTemplate>
Thanks!
source share