Windows Phone 8: LongListMultiSelector динамическая группа Header Color

В настоящее время я использую LongListMultiSelector из WPToolkit, и я пытаюсь изменить цвет каждого GroupHeader в зависимости от ключа GroupHeader (имя отображается).

В настоящее время в моем списке показаны товары, сгруппированные по рыночным именам, например: Target и Wal-mart.

Я использую этот шаблон заголовка

        <!--GroupHeaderTemplate-->
    <DataTemplate x:Key="GroupHeaderTemplate">
        <Border Background="Transparent" Margin="0,0,0,10">
            <StackPanel Background="Transparent" HorizontalAlignment="Stretch">
                <TextBlock Text="{Binding Key}" Foreground="#FF1B3A70" FontSize="48"  FontFamily="{StaticResource PhoneFontFamilySemiLight}" HorizontalAlignment="Left" VerticalAlignment="Top"/>
                <Rectangle Fill="{Binding HeaderColor}" Height="3"/><!--Fill="#FF5876AA"-->
            </StackPanel>
        </Border>
    </DataTemplate>

и что я хочу сделать, это изменить цвет заливки прямоугольника и цвет переднего плана.

Например, у Wal-mart может быть синий прямоугольник, а у Target - красный.

Заранее спасибо!

1 ответ

Решение

Создайте конвертер значений, возвращающий цвет по заданному ключу заголовка группы. Свяжите свойства Rectangle Fill и TextBlock Foreground с "Ключом" и используйте конвертер. Там будет что-то вроде:

<DataTemplate x:Key="GroupHeaderTemplate">
    <Border Background="Transparent" Margin="0,0,0,10">
        <StackPanel Background="Transparent" HorizontalAlignment="Stretch">
            <TextBlock Text="{Binding Key}" Foreground="{Binding Key, Converter={StaticResource MY_FOREGROUND_CONVERTER}}" FontSize="48"  FontFamily="{StaticResource PhoneFontFamilySemiLight}" HorizontalAlignment="Left" VerticalAlignment="Top"/>
            <Rectangle Fill="{Binding Key, Converter={StaticResource MY_FILL_CONVERTER}}" Height="3"/>
        </StackPanel>
    </Border>
</DataTemplate>
Другие вопросы по тегам