【发布时间】:2020-07-01 08:41:27
【问题描述】:
我的项目中有一个分组列表视图。当我尝试为列表视图添加ItemSelected 事件时,出现以下错误:
System.InvalidCastException: '指定的强制转换无效。'
我的代码
XAML:
<ListView
ItemsSource="{Binding AllItems,Mode=TwoWay}">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
//header label
<Label/>
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40*"/>
<ColumnDefinition Width="60*"/>
</Grid.ColumnDefinitions>
<StackLayout
Grid.Column="0"
BackgroundColor="#f9f9f9"
Orientation="Vertical">
//Items
</StackLayout>
<Label Grid.Column="1"/>
</Grid>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.Footer>
<Label/>
</ListView.Footer>
</ListView>
视图模型
public ObservableCollection<EventsHB> AllItems
{
get
{
return _allItems;
}
set
{
_allItems = value;
OnPropertyChanged("AllItems");
}
}
XAML.CS
MyEventsListview.ItemSelected += (object sender, SelectedItemChangedEventArgs e) =>
{
var selectedItem = (EventsHB) e.SelectedItem;
if (selectedItem != null)
{
//loading the next page
}
MyEventsListview.SelectedItem = null;
};
【问题讨论】:
-
你能在调试器中看到
SelectedItem是什么吗? -
@Miamy At that line app break with this exception
-
所以你应该在这一行下一个断点并查看变量值
-
@Miamy 得到了解决方案,我已将其添加为我的答案。
标签: c# listview xamarin xamarin.forms