我想爲多個DataTemplate設置一個DataTrigger,但我不確定是否有辦法做到這一點? 我已經視圖結構類似於下面如何爲多個DataTemplate使用相同的DataTrigger?
<ItemsControl ItemsSource="{Binding Collection}"
AlternationCount="2"
ItemTemplateSelector="{StaticResource RowSelector}" >
<local:HeaderTemplateSelector x:Key="RowSelector"
NormalTemplate="{StaticResource NormalTemplate}"
ExpanderTemplate1="{StaticResource ExpanderTemplate1}"
ExpanderTemplate2="{StaticResource ExpanderTemplate2}"
ExpanderTemplate3="{StaticResource ExpanderTemplate3}" />
<DataTemplate x:Key="NormalTemplate" ...>
<stackpanel x:Name="main"
<DataTemplate x:Key="ExpanderTemplate1" ...>
<Grid x:Name="main" ..>
<DataTemplate x:Key="ExpanderTemplate2" ...>
<Expander x:Name="main"
<DataTemplate x:Key="ExpanderTemplate3" ...>
<Textblock x:Name="main" ...>
我想要這個數據觸發器提供的行替代背景中,觸發定義下面
<DataTemplate.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Background" Value="Blue" TargetName="main"/>
</Trigger>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="black" TargetName="main"/>
</Trigger>
</DataTemplate.Triggers>
我可以將它添加到每個DataTemplate中的端部和它的工作原理好,但這意味着我必須複製一些代碼4次,有什麼辦法可以避免這種情況嗎? (我知道我可以使用數據網格,但它是矯枉過正這種簡單的結構)
也許這是一個副本:http://stackoverflow.com/questions/4443600/is-there-a-way-to-use-data-template-inheritance-in-wpf – Vlad
也許你可以添加觸發器一種風格,而不是模板?您可以重新使用該風格或基於新的風格。 – Vlad
我不知道在這裏應用樣式的任何方式,因爲觸發器基於「ItemsControl.AlternationIndex」設置背景,所以在這種情況下,我可以在哪裏應用樣式? –