Как изменить стиль конкретного элемента в шаблонном списке? - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть список, определенный как:

<ListBox ... ItemTemplate="{DynamicResource User}"/>

ItemTemplate:

<DataTemplate x:Key="User">
            <DataTemplate.Resources>
                <Style TargetType="{x:Type Border}" x:Key="Ordinal">
                    <Setter Property="Background">
                        <Setter.Value>
                            ...
                        </Setter.Value>
                    </Setter>
                </Style>
                <Style TargetType="{x:Type Border}" x:Key="Current">
                    <Setter Property="Background">
                        <Setter.Value>
                            ...
                        </Setter.Value>
                    </Setter>
                </Style>
            </DataTemplate.Resources>
            <Border CornerRadius="5" Padding="5" Margin="0,0,5,0" Style="{StaticResource Ordinal}">
                ...
            </Border>
        </DataTemplate>

Теперь у меня есть обработчик событий, который должен установить стиль элемента в указанном индексе на «текущий»:

void SetCurrent(int Index)
{
    ?
}

Как это сделать?

EDIT:

Может быть, использование ItemsControl облегчит эту задачу?

1 Ответ

0 голосов
/ 21 ноября 2011

В этом случае я бы использовал вместо этого комбинацию:

 <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="{StaticResource CurrentBrushKey}" />

и установка SelectedItem из списка (лучше - без использования функции SetCurrent (), просто из логики в вашей ViewModel)

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...