Альтернативный цвет для элементов списка

У меня есть ниже listview в моем файле xaml. Это связано с коллекцией платформ. Который содержит предупреждения и сообщения об ошибках. Цвет переднего плана текстового блока установлен на красный. Мне нужно установить разные цвета для разных сообщений. Как я могу установить разные цвета для разных сообщений?

<ListView x:Name="mylist" Width="578" ScrollViewer.VerticalScrollMode="Enabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Background="White" Grid.Row="2" Grid.ColumnSpan="3" ItemsSource="{x:Bind Errors}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" ScrollViewer.VerticalScrollBarVisibility="Auto">
<TextBlock Foreground="Red" TextWrapping="Wrap" Text="{Binding}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

Пожалуйста, предложите.

0

Решение

Цвет переднего плана текстового блока установлен на красный. Мне нужно установить разные цвета для разных сообщений.

Вы могли бы использовать IValueConverter подход к интерфейсу, используйте класс конвертера для конвертации разных типов сообщений в разные SolidBrush для текстового блока Foreground, Вы можете сослаться на следующий ColorConverter.

public class ColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (Boolean.Parse(value.ToString()))
{
return new SolidColorBrush(Colors.Green);
}
else
{
return new SolidColorBrush(Colors.Gray);
}
}

public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}

использование

<Page.Resources>
<local:ColorConverter x:Key="Converter"/>
</Page.Resources>

......

<TextBlock Text="{Binding info}" Foreground="{Binding messageType,Converter={StaticResource Converter}}"/>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]