Я работаю над проектом C# для Windows Phone 8.1, и я не могу поверить, что я уже потратил впустую почти на день, чтобы найти решение для такая тривиальная проблема:Как изменить цвет выбранного элемента ListView [WP8.1]
У меня есть страница, определенная с помощью XAML, на этой странице у меня есть ListView. В какой-то момент я хочу, чтобы один из элементов списка был выбран, поэтому я вызываю myListView.SelectedIndex = что угодно. Теперь я хочу, чтобы этот элемент отличался визуально от других элементов, например, его текст был нарисован другим цветом. Как мне это сделать? Вот соответствующие части кода:
<Page.Resources>
<DataTemplate x:Key="myListItemTemplate">
<TextBlock
Text="{Binding displayName}"
Style="{ThemeResource ListViewItemTextBlockStyle}"
/>
</DataTemplate>
</Page.Resources>
<ListView
x:Name="myListView"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource myListItemTemplate}"
>
</ListView>
Возможно ли с помощью XAML? Или может быть сделано в коде C#, только когда я устанавливаю значение myListView.SelectedIndex?
Спасибо!
Привет, Андрей, вы можете легко адаптировать код, который у меня есть для LongListSelector, к ListView довольно просто. Думаю, я объясню это довольно хорошо. Взгляните: http://stackoverflow.com/questions/25070203/wp8-highlight-selecteditem-longlistselector/25101536#25101536 –
Я пробовал такой подход, но он работает слишком медленно, когда список элементов большой. Я надеялся, что можно указать стиль выбранного элемента в самом XAML, а не задавать цвет в данных, перебирая всю коллекцию. –
Да, решение лишено какой-либо оптимизации, поэтому люди могут понять это лучше. Если вы хотите избежать цикла, вам необходимо привязать выбранный элемент к вашему ViewModel, и когда это изменит, события повысятся. Если вы хотите получить полное решение XAML, я, возможно, напишу вам образец, когда вернусь домой. –