Указанное приведение неверно для элемента списка 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()
,