2012-01-16 73 views
0

我想作相同的ListView/DataGird類似如下:的ListView /在細胞多行的DataGrid

enter image description here

第一:我不知道這是否是一個ListView或一個DataGrid,我怎麼能知道?
第二:我該怎麼做? (正如你所看到的,第一個單元格中有Icon,第二個單元被分成3行>設備名稱,設備驅動程序和設備狀態。第三個單元與體積計沒有關係。

非常感謝!

回答

1

感謝HB,如果你只是想顯示沒有選擇等,使用ItemsControlItemsControl

+0

ItemsControls沒有選擇,所以根據需要,這可能會也可能不是個好主意...... – 2012-01-16 17:29:08

+0

@ H.B。你是對的,非常感謝。 – Bolu 2012-01-16 17:37:52

+0

爲我的目的提供更好的解決方案。不需要單獨選擇每個單元格,而是選擇完整的行。謝謝。 – Ron 2012-01-16 18:04:16

1

你可以用ListView,ListBoxDataGrid來做到這一點,因爲沒有頭文件,ListBox可能是最簡單的。

只需使用Grid創建一個ItemTemplate,使用SharedSizeGroups可以使列的大小相同,在第二列中添加另一個具有三行文本的Grid。


在組合ListViewGridView但將提供的列了,所以你只需要在第二個欄創建一個網格,你可以風格摺疊頭。 (用作ListView.View

<ListView.Resources> 
    <Style TargetType="{x:Type GridViewColumnHeader}"> 
     <Setter Property="Visibility" Value="Collapsed"/> 
    </Style> 
</ListView.Resources> 

GridView例如:

<GridView> 
    <GridViewColumn> 
     <GridViewColumn.CellTemplate> 
      <DataTemplate> 
       <Image Width="64" Height="64" Source="{Binding Icon}" /> 
      </DataTemplate> 
     </GridViewColumn.CellTemplate> 
    </GridViewColumn> 
    <GridViewColumn> 
     <GridViewColumn.CellTemplate> 
      <DataTemplate> 
       <Grid> 
        <Grid.RowDefinitions> 
         <RowDefinition /> 
         <RowDefinition /> 
         <RowDefinition /> 
        </Grid.RowDefinitions> 
        <TextBlock Grid.Row="0" Text="{Binding Name}" /> 
        <TextBlock Grid.Row="1" Text="{Binding Manufacturer}" Foreground="Gray" /> 
        <TextBlock Grid.Row="2" Text="{Binding Status}" Foreground="Gray" /> 
       </Grid> 
      </DataTemplate> 
     </GridViewColumn.CellTemplate> 
    </GridViewColumn> 
</GridView> 
+0

雖然你的回答是更沉浸在博魯的回答中對我來說更好。我不需要單獨選擇每個單元格,而是完整的行。因此我將Bolu解決方案標記爲已接受。感謝您的時間和解決方案。 – Ron 2012-01-16 18:03:40

+2

@Ron:我想你誤會了,如果你使用'ListBoxe'或'ListView'你會*選擇完整的行,'ItemsControls'另一方面**沒有任何選擇**。 – 2012-01-16 18:58:36