Я создал приложение WPF, которое связано с Entity Framework.Как изменить цвет одной строки в ListView?
Программа добавляет данные пользователя в список, и все данные хранятся в базе данных. Поэтому всякий раз, когда я закрываю и снова открываю приложение, детали, которые были добавлены ранее, есть.
Приложение имеет функцию для расчета среднего класса.
Вот фрагмент моего кода:
if (averageResult < 7 && averageResult > 5)
{
student.Average_Grade = "F";
}
Так что, если это условие выполнено, я также хочу, чтобы строка краснеют или буква F покраснеть.
Я искал в Интернете, но только я нахожу, как изменить его в простом приложении WPF, не связанном с базой данных.
Как изменить цвет одной строки в ListView, если приложение WPF связано с базой данных?
UPDATE
Ive пытался этот код:
student.Average_Grade = "F" + new SolidColorBrush(Colors.Red);
Но вместо одного строка меняет цвет всего окна
ListView Xaml
<ListView Grid.Row="0" x:Name="studentListView" SelectionMode="Single" Margin="10,10,-10,10" ItemsSource="{Binding}">
<ListView.View>
<GridView>
<GridViewColumn x:Name="first_NameColumn" Width="80" Header="First Name">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Margin="-6,-1" Text="{Binding First_Name, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" IsReadOnly="True"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="last_NameColumn" Width="80" Header="Last Name">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Margin="-6,-1" Text="{Binding Last_Name, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" IsReadOnly="True"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="matric_NumberColumn" Width="80" Header="Matric Number">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Margin="-6,-1" Text="{Binding Matric_Number, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" IsReadOnly="True"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="component1_GradeColumn" Width="80" Header="Component 1 Grade" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Margin="6,-1,-6,-1" Text="{Binding Component1_Grade, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" IsReadOnly="True"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="component2_GradeColumn" Width="80" Header="Component 2 Grade">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Margin="-6,-1" Text="{Binding Component2_Grade, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" IsReadOnly="True"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="component3_GradeColumn" Width="80" Header="Component 3 Grade">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Margin="-6,-1" Text="{Binding Component3_Grade, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" IsReadOnly="True"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="average_GradeColumn" Width="80" Header="Average Grade">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Margin="-6,-1" Text="{Binding Average_Grade, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" IsReadOnly="True"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="edit">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Content="Edit" Click="OnEdit"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="delete">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Content="Delete" Click="OnDelete" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
<ListView.ItemContainerStyle>
<Style>
<Setter Property="Control.HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Control.VerticalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
Базы данных не имеют ничего общего с ним. Использовать ItemTemplate (http://stackoverflow.com/a/8935831/424129). Вам также нужно реализовать 'INotifyPropertyChanged' в вашем классе« Студент », если вы еще этого не сделали. –
Так что, согласно логике, мне нужно было бы пойти в класс Студента и внести некоторые изменения в колонку Average Grade? Все работает отлично для меня, я просто не знаю, как изменить цвет этого F – user3438350
Можете ли вы поделиться своим xaml? Я думаю, вам нужен конвертер, он будет проверять, соблюдается ли условие и возвращать красный цвет. – Amine