2011-04-02 30 views
1

我無法找到有關該主題的任何內容。假設我有一個Car類型的列表。每個汽車物體都有一系列屬性(即品牌,型號,條件,價格,擁有者等)。我想在DataGrid中顯示汽車列表,但我想要控制要顯示的屬性(例如,我可能不想在列表中顯示車主名稱,或者我可能想根據汽車的價格)。WPF - 數據網格中對象的數據模板

我該如何去創建一個數據模板來實現這一點(只需要一個基本示例)?

回答

1

爲了顯示和隱藏DataGrid列,您需要將每列的可見性綁定到一個布爾屬性,該布爾屬性決定是否顯示該列。關於行背景顏色,您可以添加一個DataGrid行樣式,該行樣式使用將汽車價格轉換爲相關行顏色畫筆的值轉換器將行背景屬性綁定到汽車價格。請參見概念以下證明:

<Window x:Class="MyProject.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:System="clr-namespace:System;assembly=mscorlib" 
    Title="MainWindow" 
    Height="136" Width="525"> 
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False"> 
    <DataGrid.RowStyle> 
     <Style TargetType="{x:Type DataGridRow}"> 
      <Setter Property="Background" 
        Value="{Binding SomeProperty, 
         Converter={StaticResource SomePropertyToBrushConverter}}"/> 
     </Style> 
    </DataGrid.RowStyle> 

    <DataGrid.Columns> 
     <DataGridTextColumn Header="Owner Name" 
          Visibility="{Binding IsOwnerNameVisible, 
           Converter={StaticResource BooleanToVisiblityConverter}}"/> 
    </DataGrid.Columns> 
</DataGrid>