我構建了鏈接到實體框架的WPF應用程序。如何更改ListView中單個行的顏色?
程序將用戶詳細信息添加到列表中,並將所有詳細信息存儲在數據庫中。所以無論何時關閉並重新打開應用程序,以前添加的細節都在那裏。
該應用程序具有計算平均模塊等級的功能。
這裏是我的代碼片段:
if (averageResult < 7 && averageResult > 5)
{
student.Average_Grade = "F";
}
因此,如果這一條件得到滿足,我也希望該行變爲紅色或字母F變紅。
我搜索了互聯網,但只有我發現的事情是如何改變它在一個簡單的WPF應用程序沒有鏈接到數據庫。
那麼如果WPF應用程序鏈接到數據庫,如何更改ListView中單個行的顏色?
UPDATE
伊夫嘗試這種代碼:但
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)。如果你還沒有,你需要在你的Student類上實現'INotifyPropertyChanged'。 –
所以根據你的邏輯,我將不得不去學生班,並對平均成績列做一些修改?一切正常,對我來說,我只是不知道如何改變顏色F – user3438350
你能分享你的xaml嗎?我認爲你需要一個轉換器,它會測試條件是否被滿足並返回紅色 – Amine