指定的转换在列表视图项上无效 C#
Specified cast is not valid on listview item c#
我基本上有一个列表视图,当我点击一个列表视图项目时有这个功能。
当我 运行 单击该项目时,我在应用程序崩溃前收到以下显示警报。
DisplayAlert 1,然后是 DisplayAlert 2,然后是 DisplayAlert 1,紧接着我的应用崩溃了。随着 "Specified cast is not valid".
我不知道为什么我又得到了 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);
}
在这一行中:var selectedZone = (ViewModel.ZoneViewModel)e.SelectedItem;
您正在尝试将列表中的任何内容投射到 ViewModel.ZoneViewModel
。错误是告诉您此列表项不可分配给此类型。如果您不确定该项目是什么类型,请逐步查看或打印出 e.SelectedItem.GetType()
.
我基本上有一个列表视图,当我点击一个列表视图项目时有这个功能。
当我 运行 单击该项目时,我在应用程序崩溃前收到以下显示警报。
DisplayAlert 1,然后是 DisplayAlert 2,然后是 DisplayAlert 1,紧接着我的应用崩溃了。随着 "Specified cast is not valid".
我不知道为什么我又得到了 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);
}
在这一行中:var selectedZone = (ViewModel.ZoneViewModel)e.SelectedItem;
您正在尝试将列表中的任何内容投射到 ViewModel.ZoneViewModel
。错误是告诉您此列表项不可分配给此类型。如果您不确定该项目是什么类型,请逐步查看或打印出 e.SelectedItem.GetType()
.