Как выделить выбранный элемент селектора длинного списка в Windows Phone 8

Я разработал приложение для Windows Phone 8. В этом я использую селектор длинного списка для отображения элементов в списке. Все в порядке до сих пор. Когда пользователь нажимает на любой элемент селектора длинного списка, я хочу выделить цвет фона этого элемента, чтобы пользователь четко понимал, что он выбрал элемент.

Подскажите, пожалуйста, как это сделать в windows phone 8. Жду ответа.


person user2636874    schedule 18.12.2013    source источник


Ответы (2)


http://code.msdn.microsoft.com/wpapps/Highlight-a-selected-item-30ced444 Подробный пример того, как это сделать

person d.lavysh    schedule 18.12.2013

Мне нравится иметь больший контроль над своим приложением с помощью кода и избегать действий в XAML, где это может быть сложно. Ниже приведен более простой способ, который дает больше контроля над кодом и требует минимальных изменений в xaml. Это делает xaml красивым и чистым для того, что должно быть действительно простым действием.

  1. Добавьте свойство BackColor (или другую строку) к связанному объекту.

    public string BackColor { get; set; }
    
  2. Привяжите это свойство к чему-то в вашем xaml, например к фону, панели стека или цвету границы границы, что-то, что будет отображать визуальное изменение. Например.

    <StackPanel Orientation="Horizontal" Background="{Binding BackColor}">
    
  3. В коде селектора длинного списка событие «SelectionChanged» обновляет связанные объекты, используя коллекции AddedItems и RemovedItems из SelectionChangedEventArgs e.

    if (e.AddedItems.Count > 0)
    {
        if (e.AddedItems[0] != null)
        {
            oMyObject = (MyServices.MyObjectDao)e.AddedItems[0];
            oMyObject.BackColor = "Red";
        }
    }
    
    if (e.RemovedItems.Count > 0)
    {
        if (e.RemovedItems[0] != null)
        {
            oMyObject = (MySercvices.MyObjectDao)e.RemovedItems[0];
            oMyObject.BackColor = "Black";
        }
    }
    

Вы можете использовать простые цвета, как в примере, или любые предопределенные цвета из вашего xaml.

person djack109    schedule 23.07.2014