#wpf #datagrid #datatemplate
#wpf #сетка данных #datatemplate
Вопрос:
У меня возникли проблемы с поиском чего-либо по этому вопросу. Допустим, у меня есть список типов Car. Каждый объект car имеет ряд свойств (т.е. марку, модель, состояние, цену, владельца и т.д.). Я хочу отобразить список автомобилей в сетке данных, но я хочу контролировать, какие свойства отображать (например, я могу не захотеть отображать имя владельца в списке или я могу захотеть раскрасить строку автомобиля в зависимости от цены автомобиля).
Как я могу создать шаблон данных для достижения этой цели (нужен только базовый пример)?
Ответ №1:
Чтобы показывать и скрывать столбцы сетки данных, вам необходимо привязать видимость каждого столбца к логическому свойству, которое определяет, показывать этот столбец или нет. что касается цвета фона строки, вы можете добавить стиль строки сетки данных, который привязывает свойство фона строки к цене автомобиля, используя конвертер значений, который преобразует цену автомобиля в соответствующую цветовую кисть строки. Смотрите следующее доказательство концепции:
<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>