Альтернативный цвет для элементов списка - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть список ниже в моем файле 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>

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

1 Ответ

0 голосов
/ 28 сентября 2018

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

Вы можете использовать IValueConverter интерфейс, чтобы приблизиться, использовать класс конвертера для преобразования разных типов сообщений в разные SolidBrush для TextblockForeground.Вы можете сослаться на следующий 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}}"/>
...