我无法找到有关此主题的任何内容。假设我有一个Car类型列表。每个汽车对象都有一系列属性(即品牌,型号,条件,价格,所有者等)。我想在DataGrid中显示Cars的列表,但我想控制要显示的属性(例如,我可能不希望在列表中显示所有者名称,或者我可能想要根据汽车的价格)。
如何创建数据模板来实现这一目标(只需要一个基本的例子)?
答案 0 :(得分:1)
为了显示和隐藏DataGrid列,您需要将每列的可见性绑定到确定是否显示此列的Boolean属性。关于行背景颜色,您可以使用将汽车价格转换为相关行颜色画笔的值转换器,将行背景属性绑定到汽车价格的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>