我是WPF新手并且有以下任务: 我有附加的xml文件显然有两个级别。 如何创建显示第一级 PRODUCT 项目的父列表视图及其属性,并在每个 PRODUCT 项目下我应显示子级别 PRODUCTID 项目另一个列表视图。 此外,我必须使PRODUCT的项目多选。
任何帮助都将不胜感激。
<Products>
<Product Name="Red" File="FileRed" ColorLock="0">
<ProductID ProductNumber="p01" FlowRate="8" Finish="" CAD="540" USD="520" EU="410"/>
<ProductID ProductNumber="p02" FlowRate="5" Finish="" CAD="540" USD="520" EU="410"/>
</Product>
<Product Name="Green" File="FileGreen" ColorLock="0">
<ProductID ProductNumber="4000" FlowRate="4" Finish="PowderCoat" CAD="540" USD="520" EU="410"/>
<ProductID ProductNumber="4009" FlowRate="4" Finish="Polished" CAD="540" USD="520" EU="410"/>
<ProductID ProductNumber="4100" FlowRate="2.5" Finish="PowderCoat" CAD="540" USD="520" EU="410"/>
<ProductID ProductNumber="4109" FlowRate="2.5" Finish="Polished" CAD="540" USD="520" EU="410"/>
</Product>
<Product Name="Blue" File="FileBlue" ColorLock="0">
<ProductID ProductNumber="2000" FlowRate="15" Finish="PowderCoat" CAD="3370" USD="3210" EU="2530"/>
</Product>
答案 0 :(得分:1)
ListView有一个名为ItemTemplate的属性,让您决定要用于显示ListView项目的模板。您可以创建另一个ListView来显示内部级别的产品,将其设置为主ListView的ItemTemplate
<ListView ItemsSource="{Binding Products}" SelectionMode="Multiple">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<!-- Displays first level attributes -->
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="{Binding File}"/>
<TextBlock Text="{Binding ColorLock}"/>
<ListView ItemsSource="{Binding ProductIDs}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<!-- Displays the second level attributes -->
<TextBlock Text="{Binding ProductNumber}"/>
<TextBlock Text="{Binding FlowRate}"/>
<TextBlock Text="{Binding Finish}"/>
<TextBlock Text="{Binding CAD}"/>
<TextBlock Text="{Binding USD}"/>
<TextBlock Text="{Binding EU}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
假设XML中的节点由{em> Models 类Product
和ProductID
表示,每个类包含每个属性的属性,以及 ViewModel 包含Product
类集合的类,设置为此xaml的DataContext
。