locked
Подсветка выбранного элемента в LongListSelector. Как сделать? RRS feed

  • Вопрос

  • Добрый день!

    Имеется LongListSelector. 

    <ctl:LongListSelector Loaded="listbox_Loaded" Name="listbox" SelectionChanged="listbox_selectionChanged">
        <ctl:LongListSelector.ItemTemplate>
            <DataTemplate>
                <Border Background="Gray" MouseLeftButtonDown="listbox_itemClicked">
                    <TextBlock Text="{Binding}" TextWrapping="Wrap" Width="350" FontSize="24"/>
                </Border>
            </DataTemplate>
        </ctl:LongListSelector.ItemTemplate>                     
    </ctl:LongListSelector>
    Хочу реализовать подсветку элемента на котором кликнули, для этого перекрашиваю Border в красный цвет. Однако есть проблема: если пользователь меняет выбор, не получается вернуть предыдущий выбранный элемент обратно в серый цвет. Пробовал вынести DataTemplate в ресурсы и просто перезагружать его при смене выбора, однако это не работало. Как можно настроить нормальный highlighting?

    Нужно использовать именно LongListSelector, а не ListBox, где эта проблема уже решена.

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

    22 февраля 2014 г. 18:05

Ответы

  • Здравствуйте, погуглите немного, очень много информации об этом. Там создается определенный класс, в котором вы определяете, какому элементу какой темплейт. Этот класс используется с помощью статический ресурсов в xaml.
    Например: статья1,  статья2
    24 февраля 2014 г. 19:28

Все ответы

  • Здравсвуйте, мы можете добавить bool поле в класс элемента, например, IsChecked. И менять его в зависимости от необходимого поведения. А на отображении с помощью TemplateSelector и свойства IsCheked  регулировать вид отображения.
    22 февраля 2014 г. 19:27
  • А можно подробнее про TemplateSelector, и как он настраивается для конкретного элемента? Я пока ещё новичок в Windows Phone 8.

    Спасибо!

    23 февраля 2014 г. 5:33
  • Здравствуйте, погуглите немного, очень много информации об этом. Там создается определенный класс, в котором вы определяете, какому элементу какой темплейт. Этот класс используется с помощью статический ресурсов в xaml.
    Например: статья1,  статья2
    24 февраля 2014 г. 19:28