我正在嘗試創建一個可編輯的串列樹視圖:
public class CollectionType
{
public string Name {get; set;}
public Dictionary<string, List<Size>> SizeGuide { get; set; }
}
public class Size
{
public string Name { get; set; }
public string Weight { get; set; }
}
這是我到現在為止的想法:
<TreeView Name="CollectionTypesSizes">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type self:CollectionType}" ItemsSource="{Binding SizeGuide}">
<StackPanel Orientation="Horizontal">
<TreeViewItem>
<TreeViewItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name}"/>
<TextBlock Text=": "/>
<TextBlock Text="{Binding Path=SizeGuide.Count}" Foreground="CadetBlue"/>
</StackPanel>
</TreeViewItem.Header>
</TreeViewItem>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
但我不知道如何深入到 Size 物件以正確呈現它:
樹視圖結果
我之前嘗試過不同的方法,但是在嘗試使其可編輯時變得復雜。
uj5u.com熱心網友回復:
您可以制作嵌套的 HierarchicalDataTemplates:
<HierarchicalDataTemplate DataType="{x:Type local:CollectionType}"
ItemsSource="{Binding SizeGuide}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name}"/>
<TextBlock Text=": "/>
<TextBlock Text="{Binding Path=SizeGuide.Count}" Foreground="CadetBlue"/>
</StackPanel>
<HierarchicalDataTemplate.ItemTemplate>
<!--template for KeyValuePair<string, List<Size>> -->
<HierarchicalDataTemplate ItemsSource="{Binding Path=Value}">
<TextBlock Text="{Binding Path=Key}"/>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate DataType="{x:Type local:Size}">
<StackPanel Orientation="Horizontal">
<TextBox Width="50" Text="{Binding Path=Name}"/>
<TextBlock Text=": "/>
<TextBox Width="50" Text="{Binding Path=Weight}"/>
</StackPanel>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/422324.html
標籤:
下一篇:如何訪問WPF代碼隱藏中ContentControlDataTemplate中的物件,或者如何在xaml中設定CefSharpDownloadHandler
