Первый пост Ура! - У меня есть gridview, который предоставляет пользователю 4 варианта. При выборе элемента 0 открывается скрытое подменю, относящееся к этому параметру, в то время как другие элементы имеют другую функциональность. Чтобы выбрать правильный индекс, я должен сделать выбор дважды. SelectedIndex начинается с -1, что, согласно документации, является предполагаемым поведением и имеет смысл. Если я инициализирую представление с индексом 0, границы элемента будут выделены, как если бы он был выбран, и для активации меню требуется всего один щелчок, но если я щелкну любой другой элемент, для регистрации этих элементов потребуется два щелчка.
Например, если у меня выбран индекс 0, затем выберите индекс 1, он показывает индекс 0, а если я снова выбираю индекс 0, он показывает индекс 1.
private void GridView_ItemClick(object sender, ItemClickEventArgs e)
{
int index = StudyTypeGrid.SelectedIndex;
var selected = e.ClickedItem;
System.Diagnostics.Debug.WriteLine("Index: " + index);
System.Diagnostics.Debug.WriteLine("Item: " + selected.ToString());
if (selected != null && index == 0)
{
HiddenOptionPanel.Visibility = Visibility.Visible;
}else
{
HiddenOptionPanel.Visibility = Visibility.Collapsed;
}
}
Вот кусок Xaml:
<GridView x:Name="StudyTypeGrid" HorizontalAlignment="Center" Margin="0,20,0,0" ItemClick="GridView_ItemClick"
IsItemClickEnabled="True" IsDoubleTapEnabled="False">
<GridViewItem Height="200" Width="200" >
<StackPanel Width="200">
<StackPanel Height="100">
<TextBlock Text="Option 1" FontSize="24" TextWrapping="WrapWholeWords"
HorizontalAlignment="Center" TextAlignment="Center" Margin="0,20,0,0" />
</StackPanel>
<StackPanel Background="LightGray" Height="100">
<TextBlock Text="Description"
TextWrapping="WrapWholeWords" TextAlignment="Center" VerticalAlignment="Center" />
</StackPanel>
</StackPanel>
</GridViewItem>
Я также попытался установить для IsDoubleTapEnabled значение false и попытался сослаться на выбранный объект вместо выбранного индекса. Исходный оператор If имел только индекс == 0, но оставил выбранным, чтобы показать, что я тоже пробовал этот маршрут. Идя слева направо и обратно, я получаю следующий вывод:
Индекс: -1
Элемент: Windows.UI.Xaml.Controls.StackPanel
Индекс: 0
Элемент: Windows.UI.Xaml.Controls.StackPanel
Индекс: 1
/> Элемент: Windows.UI.Xaml.Controls.StackPanel
Индекс: 2
Элемент: Windows.UI.Xaml.Controls.StackPanel
Индекс: 3
Элемент: Windows. UI.Xaml.Controls.StackPanel
Индекс: 2
Элемент: Windows.UI.Xaml.Controls.StackPanel
Индекс: 1
Элемент: Windows.UI.Xaml.Controls. Панель стека
Это представление запускается со страницы, которая также имеет представление сетки и отвечает таким же образом. Что мне не хватает?