Так что у меня возникли проблемы с возвратом правильного SelectedIndex в событие click. Независимо от того, какой пункт я выбираю, я всегда вернусь -1Не удается получить действительный ListView.SelectedIndex
Вот мое событие:
private void Delete_Click(object sender, RoutedEventArgs e)
{
var index = CitiesDisplay.SelectedIndex;
if(CitiesDisplay.SelectedIndex >= 0)
{
vm.Cities.Remove(vm.Cities[index]);
}
}
И вот мой ListView:
<ListView Name="CitiesDisplay" ItemsSource="{Binding}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Holding="ListViewItem_Holding">
<!-- Begin Flyout menu -->
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem Text="Delete" Click="Delete_Click"/>
<MenuFlyoutItem Text="Navigate To" Click="NavigateTo_Click"/>
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
<!-- End Flyout Menu -->
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Vertical">
<TextBlock Name="CityName" Text="{Binding Name}" FontSize="20"></TextBlock>
<TextBlock Name="MaxTemp" Text="{Binding max}"/>
<TextBlock Name="MinTemp" Text="{Binding min}"/>
<TextBlock Name="CurrentTemp" Text="{Binding temp}"/>
</StackPanel>
<Image Name="Logo" Width="50" Height="50" Source="{Binding icon}" HorizontalAlignment="Right" Margin="5"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Я действительно не понимаю, почему я не может получить мой SelectedIndex, потому что я сделал то же самое в предыдущем проекте, и он работал безупречно.
Я также пытался манипулировать SelectedItems безрезультатно.
Некоторые дополнительные подробности: Я разрабатываю Windows Phone 8.1 App (WinRT) с помощью Visual Studio 2015 Update 1.
Из curosity при отладке в ваш объект CitiesDisplay у него есть что-нибудь в коллекции? – CathalMF
@CathalMF При отладке в CitiesDisplay у меня действительно есть коллекция Items, которая содержит мои элементы (и они отображаются в любом случае). –
Вы связываете свой просмотр списка в коде с чем-то вроде CitiesDisplay.ItemsSource = MyItems; Возможно, когда вы меняете дисплей, источник элемента сбрасывает все. – CathalMF