Как выбрать все элементы сгруппированного GridView

Для приложения WinRT у меня есть GridView, где элементы сгруппированы так, что каждая группа содержит заголовок и его элемент группы.

Я хочу кнопку в панели приложения, чтобы передать весь элемент в моем gridView в выбранное состояние (с фиолетовой рамкой и флажком, например, когда я нажимаю правой кнопкой мыши на элементе).

Я пытаюсь добавить каждый элемент в список SelectedItems моего GridView, но он ничего не делает.

private void FavoriButton_Click_1(object sender, RoutedEventArgs e)
 {
 foreach (Categorie cat in coll)
 itemGridView.SelectedItems.Add(cat);

 }

Кто-нибудь знает, как я могу поместить все мои объекты сетки в выбранное состояние (с фиолетовой рамкой и флажком)?

Вот код

public sealed partial class HomePage : LayoutAwarePage
 {
 ObservableCollection<categorie> coll = new ObservableCollection<categorie>();

 public HomePage()
 {

 this.InitializeComponent();

 cvs1.Source = coll;

 (itemGridView as ListViewBase).ItemsSource = this.cvs1.View.CollectionGroups;

 }

 async private void FillPage()
 {


 var categories = App.api.Categories_Get();

 if (categories == null || categories.Count == 0)
 return;


 for (var i = 0; i < categories.Count; i++) 
 coll.Insert(i, categories[i]); 


 }

 private void FavoriButton_Click_1(object sender, RoutedEventArgs e)
 {
 foreach (Categorie cat in coll)
 {
 itemGridView.SelectedItems.Add(cat);
 }
 }
</categorie></categorie>

et le XAML

<common:layoutawarepage x:class="NMA.Pages.HomePage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:NMA" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:common="using:NMA.Common" mc:ignorable="d">

<common:layoutawarepage.resources>

<collectionviewsource x:name="cvs1" itemspath="listArt" issourcegrouped="True">

<datatemplate x:key="Standard250x250ItemTemplatePerso">
 <grid horizontalalignment="Left" variablesizedwrapgrid.columnspan="1" variablesizedwrapgrid.rowspan="1" local:tilt.istiltenabled="False">

 

 </grid>
 </datatemplate>


</collectionviewsource></common:layoutawarepage.resources>
<grid background="Transparent" x:name="MyGrid">
 <grid x:name="NormalGrid">
 <grid.rowdefinitions>
 <rowdefinition>
 <rowdefinition>
 </rowdefinition></rowdefinition></grid.rowdefinitions>

 <local:variablegridview x:name="itemGridView" automationproperties.automationid="ItemGridView" automationproperties.name="Items" grid.rowspan="2" padding="120,130,120,74" itemssource="{Binding Source={StaticResource cvs1}}" itemtemplate="{StaticResource Standard250x250ItemTemplatePerso}" isswipeenabled="False" isitemclickenabled="True" background="Transparent" scrollviewer.horizontalscrollbarvisibility="Disabled" scrollviewer.horizontalscrollmode="Disabled" selectionmode="Multiple">



 <local:variablegridview.itemspanel>
 <itemspaneltemplate>
 <virtualizingstackpanel orientation="Horizontal" background="Transparent" local:tilt.istiltenabled="False" margin="0,0,100,0">
 </virtualizingstackpanel></itemspaneltemplate>
 </local:variablegridview.itemspanel>
 <local:variablegridview.groupstyle>
 <groupstyle>
 <groupstyle.headertemplate>
 <datatemplate x:name="MyDataTemplate">
 <button x:name="HeaderButton" automationproperties.name="MyHeaderButton" click="HeaderButton_Click_1" content="{Binding NomCat}" fontsize="26" fontfamily="{StaticResource SegoeWPLight}" margin="-24,0,0,20" background="Transparent">
 </button>
 </datatemplate>
 </groupstyle.headertemplate>
 <groupstyle.panel>


 <itemspaneltemplate>
 <variablesizedwrapgrid itemwidth="270" itemheight="210" orientation="Vertical" margin="0,0,-30,0" maximumrowsorcolumns="4" background="Transparent">
 </variablesizedwrapgrid></itemspaneltemplate>
 </groupstyle.panel>
 </groupstyle>
 </local:variablegridview.groupstyle>
 </local:variablegridview>
 </grid>
</grid></common:layoutawarepage>

большое спасибо

1 ответ

Я на самом деле нашел это, я старался пройти через визуальное Дерево, в то время как это было просто с ItemContainerGenerator.

private void FavoriButton_Click_1(object sender, RoutedEventArgs e)
 { 
 for( var i = 0 ; i
<p> Совсем просто.</p>

licensed under cc by-sa 3.0 with attribution.