Начиная с шаблона страницы сгруппированных элементов, я хочу иметь возможность выполнять задачи по элементам сетки при их нажатии. А именно, я хочу изменить фоновое изображение и добавить/удалить базовый объект в список выбранных элементов.Обработка GridItems Нажмите
Вот мой DataTemplate:
<GridView.ItemTemplate>
<DataTemplate>
<Border BorderBrush="LightGray" BorderThickness="2" Margin="0,0,20,20">
<Grid HorizontalAlignment="Left" Width="390" Height="190">
<Grid.Background>
<ImageBrush ImageSource="/Assets/unselected.png" Stretch="None"/>
</Grid.Background>
<StackPanel Orientation="Horizontal" VerticalAlignment="Top">
<Image VerticalAlignment="Top" Stretch="None" Source="{Binding ImageUrl}" Margin="10,10,0,0"/>
<StackPanel MaxWidth="270">
<TextBlock Text="{Binding Summary}"/>
<TextBlock Text="{Binding Brand}" />
<TextBlock Text="{Binding Detail}" TextWrapping="Wrap" />
</StackPanel>
</StackPanel>
</Grid>
</Border>
</DataTemplate>
</GridView.ItemTemplate>
OnTap, я хочу Togle значение Grid.Background
ImageSource
от unselected.png к selected.png. Это я считаю, что могу использовать VisualStates и Storyboards, но мне не удалось заставить это работать в прошлом (я пощажу вас хаос моих попыток в xaml).
Излишне говорить, что я попытался выполнить шаги, описанные в файле here, используя Blend, но свойство Grid.Background не похоже на состояние. Если я попробую изменить фоновый кисти в состояниях Pressed или Selected, это также изменится для нормального состояния.
Поскольку я хочу захватить контекст данных выбранного элемента и добавить/удалить его из списка, должен ли я просто обрабатывать все это вместе в обработчике событий OnTap
? Я предпочел бы, чтобы эти проблемы были разделены, но я сделаю все, что мне нужно ...
спасибо!