Entity FrameworkにリンクされたWPFアプリケーションを構築しました。ListViewで1行の色を変更するにはどうすればよいですか?
プログラムはユーザーの詳細をリストに追加し、すべての詳細はデータベースに保存されます。したがって、アプリケーションを終了して再度開くと、以前に追加された詳細が表示されます。
このアプリケーションには、平均モジュールグレードを計算する機能があります。ここで
私のコードの断片である。この条件が満たされるのであれば、私はまた、行が赤を回すために赤や手紙Fを回したい
if (averageResult < 7 && averageResult > 5)
{
student.Average_Grade = "F";
}
。
私はインターネットを検索しましたが、私が見つけたのは、データベースにリンクされていない単純なWPFアプリケーションでそれを変更する方法だけです。
WPFアプリケーションがデータベースにリンクされている場合、ListViewの1行の色をどのように変更しますか?
UPDATE
アイブは、このコードを試みた:
student.Average_Grade = "F" + new SolidColorBrush(Colors.Red);
をしかし、その代わりに単一の行のあるウィンドウ全体の色
リストビュー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>
データベースは、それとは何の関係もないItemContainerStyleを交換してください。 [ItemTemplateを使用](http://stackoverflow.com/a/8935831/424129)。まだ 'Student'クラスに' INotifyPropertyChanged'を実装する必要があります。 –
あなたのロジックによれば、私は学生クラスに行って、平均グレードの列にいくつかの変更を加えなければなりませんか?すべてが私のためにうまくいく、私はちょうどその色を変更する方法を知りませんF – user3438350
あなたはxamlを共有できますか?私はあなたがコンバーターが必要だと思う、条件が満たされ、赤色を返すかどうかテストします – Amine