2015-10-01 96 views
1

我有一個ID,名稱和價格的列表視圖。每個這樣的項目都有一個包含類別的子列表。ListView網格中的網格

所以「爲每個」項目我想顯示所有子項目。 這是它會看起來應該像:

Example

但我不知道該怎麼做。 這是我的xaml代碼。

<ListView.View> 
<GridView> 
    <GridViewColumn Width="140" Header="ID" DisplayMemberBinding="{Binding ID}"/> 
    <GridViewColumn Width="140" Header="Name" DisplayMemberBinding="{Binding Name}" /> 
    <GridViewColumn Width="300" Header="Price" DisplayMemberBinding="{Binding Price}" /> 
</GridView> 

<!-- ??? --> 
<Gridview ItemSource="{Binding Childs}"> 

我不得不添加一個子網格我想,但我不知道如何。

這是我的階級結構

public class GroupedItem 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public float Price { get; set; } 

    public IEnumerable<Item> Childs { get; set; } 
} 

有別人的想法?

+1

這裏的比如http://計算器。 COM /問題/ 871205 /嵌套WPF的數據網格 – GasDev

回答

2

你可以用DataGrid中做到這一點:

<w:DataGrid ItemsSource={Binding Source={StaticResource GroupedItemList}}> 
    <w:DataGrid.RowDetailsTemplate> 
     <DataTemplate> 
      <w:DataGrid ItemsSource={Binding Childs }> 

      </w:DataGrid> 
     </DataTemplate> 
    </w:DataGrid.RowDetailsTemplate> 
    <w:DataGrid.Columns> 
     <w:DataGridTextColumn Header="Name" DisplayMemberBinding="{Binding Name}" /> 
     <w:DataGridTextColumn Header="Price" DisplayMemberBinding="{Binding Price}" /> 
    </w:DataGrid.Columns> 

您也可以在CodePlex上使用此數據網格它是免費的

WPF Extended DataGrid

-1

您可能需要使用所謂樹網格視圖。 DevExpress和Infragistics有非常酷的專有實現。但也有免費的soultions,descussed here

-1

在你的ListViewItem你將不得不建立一個模板與其他的ListView 所以你的第二個列表視圖是結合

public IEnumerable<Item> Childs { get; set; }