Например, в XAML У меня есть DataGrid с именем PersonList:Как изменить цвет фона определенной строки в DataGrid
<DataGrid Name="PersonList" />
В коде у меня есть коллекция Person:
ObservableCollection<Person> persons = ViewModel.PersonModel;
и тогда я создал Person DataTable и переплетены его к PersonList следующим образом:
PersonDataTable.Columns.Add("Name", typeof(string));
PersonDataTable.Columns.Add("Age", typeof(int));
foreach (var person in persons)
{
if (person != null)
{
PersonDataTable.Rows.Add(
Person.Name,
Person.Age
);
}
}
PersonList.ItemSource = PersonDataTable.AsDataView;
Мой вопрос есть, как изменить цвет фона определенной строки? Например, изменить цвет фона строки с возрастом человека> 50
Я пытался сделать это путем доступа к каждой строке из PersonList.ItemSource, но мне не удалось, и строка всегда нуль:
int count = 0;
foreach (var person in PersonList.ItemSource)
{
var row = PersonList.ItemContainerGenerator.ContainerFromItem(person) as DataGridRow;
if (PersonDataTable.Rows[count].Field<int>(1) > 50)
{
row.Background = Brushes.Gray;
}
count++;
}
Помогите, мастера WPF :)
Спасибо, но я использую WPF :(Это не решило мою проблему. – Ingako
Хороший призыв к гранту. Не видел последней строки. [Посмотрите ответ на этот вопрос о том, как настроить DataTrigger] (http://stackoverflow.com/questions/18053281/how-to-set-datagrids-row-background-based-on-a-property-value- использование-данные бинди). Должно быть то, что вы ищете. –
Спасибо! Наконец, это заставило его работать ... Я думал, что так близко, чтобы он работал на моем пути: P – Ingako