Приложение Metro -ListView -как изменить цвет фона ListViewItems

В моем приложении в стиле Metro для Windows 8 я привязываю Listview к ObservableCollection и хочу, чтобы цвет фона каждого ListViewItem чередовался (белый, серый, белый и т. д.)

   
        
            
                
                    
                
            
        

В WPF это делается с помощью стиля с триггерами -, см. на этой странице .

Как это сделать в приложении Metro?

Обновление:

После того, как правильный ответ был дан ниже, я ушел и фактически закодировал его. Вот код для тех, кому он нужен:

Код класса преобразователя значений:

public class AltBackgroundConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        if (!(value is int)) return null;
        int index = (int)value;

        if (index % 2 == 0)
            return Colors.White;
        else
            return Colors.LightGray;
    }

    // No need to implement converting back on a one-way binding
    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}

Код для представления списка XAML:

    

        
            
                
                    
                        
                    

... и при добавлении элементов в коллекцию или изменении коллекции не забудьте установить их индекс в коллекции:

myCollection.add(item);
item.IndexWithinParentCollection = myCollection.Count;

Конечно, если ваша коллекция часто меняется, этот подход будет дорогостоящим в обслуживании, так как вам придется -заново индексировать ваши элементы, поэтому мне было проще хранить ссылку на родительскую коллекцию в каждом элементе, а затем вычислять Индексируйте лету --с помощью.IndexOf (), чтобы избежать необходимости постоянно обновлять значения индекса при каждом изменении коллекции.

8
задан Filip Skakun 22 April 2014 в 23:30
поделиться