Проблема
Я новичок в WPF и пытаюсь учиться.У меня есть базовый ListView, показывающий информацию о людях, таких как имя, возраст и класс.
Я хочу, чтобы текст результата оценки был зеленым, если enum равен "Pass", и красным, если "Fail", в противном случае цвет текста не изменился.
Что я пробовал
Я знаю, что вы можете жестко закодировать весь текст в столбце, чтобы он был зеленым, красным и т. Д. С помощью Foreground = "", но это не сработает.Я попытался реализовать функцию, которая проверяет, равняется ли каждое перечисление в списке Pass и т. Д., Но я не смог получить его, и я застрял здесь.
XAML
<Grid Margin="10">
<ListView Name="lvUsers">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Header="Age" Width="50" DisplayMemberBinding="{Binding Age}" />
<GridViewColumn Header="Grade" Width="100" DisplayMemberBinding="{Binding Grade}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
CS
public partial class MainWindow : Window
{
public class User
{
public string Name { get; set; }
public int Age { get; set; }
public Grade Grade { get; set; }
}
public MainWindow()
{
InitializeComponent();
List<User> items = new List<User>();
items.Add(new User() { Name = "John Doe", Age = 42, Grade = Grade.fail });
items.Add(new User() { Name = "Jane Doe", Age = 39, Grade = Grade.pass });
items.Add(new User() { Name = "Sammy Doe", Age = 13, Grade = Grade.fail });
lvUsers.ItemsSource = items;
}
public enum Grade
{
none = 0,
pass = 1,
fail = 2
};
}
Ожидаемый результат
Я не хочу, чтобы весь текст в столбце оценок был зеленым/ красный.И я не хочу добавлять свойство Color внутри класса пользователя.
Когда для пользователя значение enum равно «Pass», текст «Pass» в столбце Grade будет зеленым.Когда это «Fail», текст будет красным.В противном случае цвет текста не изменится.
Любая помощь очень ценится, потому что я застрял здесь.