Указанное приведение неверно для элемента списка C#

У меня в основном есть просмотр списка, с этой функцией, когда я нажимаю на элемент списка.

Когда я запускаю это и нажимаю на элемент, я получаю следующие предупреждения на экране, прежде чем мое приложение падает.

DisplayAlert 1, затем DisplayAlert 2, затем DisplayAlert 1 и сразу после этого моего приложения происходит сбой. С "Указанным приведением неверно".

Я не знаю, почему я снова получаю DisplayAlert 1, и почему это происходит сбой.

public async void OnSelection(object sender, SelectedItemChangedEventArgs e)
    {
        await DisplayAlert("1", "1", "1");
        if (e.SelectedItem == null)
        {
            return; // ItemSelected is called on deselection, which results in SelectedItem being set to null
        }

        //((ListView)sender).SelectedItem = null;

        await DisplayAlert("2", "2", "2");
        // Cast to zoneviewmodel type
        var selectedZone = (ViewModel.ZoneViewModel)e.SelectedItem; 


        await DisplayAlert("3", "3", "3");
        // Redirect to login
        await Navigation.PushAsync(new LoginPage(selectedZone.Address));

        await DisplayAlert("4", "4", "4");
        // send message containing information to fill loginpage information
        MessagingCenter.Send<MainPage, ViewModel.ZoneViewModel>(this, "loginInfo", selectedZone);
    }

1 ответ

Решение

В этой строке: var selectedZone = (ViewModel.ZoneViewModel)e.SelectedItem; вы пытаетесь разыграть все, что есть в вашем списке, чтобы ViewModel.ZoneViewModel, Ошибка говорит вам, что этот элемент списка нельзя назначить этому типу. Если вы не уверены, какой тип элемента, выполните шаг или распечатайте e.SelectedItem.GetType(),

Другие вопросы по тегам