我有一個WPF控件模板包含一個ListView(讓我們稱之爲「原始的ListView」),並且具有包含一個ListView自己的控制模板其他自定義WPF控件(讓我們稱之爲「自定義的ListView 「)。更改一個列表視圖風格會影響其他列表視圖也
我改變原來的列表視圖樣式像這樣:
<Style TargetType="{x:Type ListView}" BasedOn="{StaticResource ListViewStyle}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MyClass}}, Path=MyVariable}" Value="0">
<Setter Property="ListView.ItemsPanel" Value="{StaticResource itemsPanelTemplate1}"/>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MyClass}}, Path=MyVariable}" Value="1">
<Setter Property="ListView.ItemsPanel" Value="{StaticResource itemsPanelTemplate2}" />
</DataTrigger>
</Style.Triggers>
</Style>
<ListView x:Name="My_ListView" ItemsSource="{Binding}" ItemContainerStyle="{DynamicResource MyListViewItemStyle}"/>
我所看到的是,當我通過改變MyVariable的自定義列表視圖樣式更改原始的ListView的樣式也發生變化。
我怎樣才能避免這種情況,這樣的風格變化隻影響我想要的ListView控件?
您的樣式在哪裏定義,以及如何設置「原始」ListView的樣式? – mm8
我上面複製風格包含「原ListView中的ControlTemplate內部限定。我通過改變MyVariable的設置風格和DataTriggrers或者適用itemsPanelTemplate1或itemsPanelTemplate2。 –