0
我有一個TreeView
控件,顯示不同的對象對象。我使用多個DataTemplates,每個類型一個,其DataType
相應地設置。
代碼:在具有多個DataTemplates的樹視圖中,如何將樣式應用於其中的一個樣式
<TreeView>
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:Family}" ItemsSource = "Members">
<!-- template omitted here-->
</HierarchicalDataTemplate>
<DataTemplate DataType = "{x:Type local:FamilyMember}">
<!--template omitted-->
</DataTemplate>
</TreeView.Resources>
</TreeView>
現在我想將樣式應用到HierarchicalDataTemplate
,只給它。我必須使用一種風格,因爲我設置了TreeViewItem
的一些屬性,在這種情況下是項目容器。 我想:
<HierarchicalDataTemplate DataType="{x:Type local:Family}" ItemsSource = "Members">
<HierarchicalDataTemplate.ItemsContainerStyle>
<Style TargetType = "TreeViewItem">
<!-- some styling of the tree view item-->
</Style>
<\HierarchicalDataTemplate.ItemsContainerStyle>
<!-- template omitted here-->
</HierarchicalDataTemplate>
但風格被應用到所有樹項目,即使是那些呈現FamilyMember
對象,它們是同一個模板的不是。
我該怎麼做?
感謝您的回答,但有沒有辦法在普通的XAML中實現? – RoadBump
我能想到的只有XAML。然而,如果你花了一些時間,你可以開發一個足夠通用的樣式選擇器類映射類型。然後,您可以在任何地方重複使用,並僅在XAML中完成工作。我從來沒有嘗試過。 – Xavier
我試過了,它解決了這個問題。但是現在出於一個奇怪的原因,我在輸出窗口中遇到了很多綁定錯誤,並說'FamilyMember'沒有名稱爲'Members'的成員。似乎它試圖將'HierarchicalDataTemplate'應用於家庭成員,即使'DataType'設置爲'Family'。現在做什麼? – RoadBump