2011-04-02 31 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>