UWP重写Frame.Navigate将数据从ListViewItem传递到新的页面casues Null Exception
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UWP重写Frame.Navigate将数据从ListViewItem传递到新的页面casues Null Exception相关的知识,希望对你有一定的参考价值。
我有这个XAML ListViewItem:
<ListView HorizontalAlignment="Center" Height="500" Margin="0,130,0,0"
VerticalAlignment="Top" Width="400" x:Name="RoutesListView"
SelectionChanged="RoutesListView_SelectionChanged"
IsItemClickEnabled="True" SelectionMode="Single"
ItemClick="RoutesListView_ItemClick">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel >
<TextBlock Text="{Binding RouteName}"
Margin="20,0,20,8"
FontFamily="Calibri"
FontSize="24
FontWeight="SemiBold"
Foreground="Gray"
/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
在点击处理程序中,我想将Route对象的ID发送到新页面,如下所示:
private void RoutesListView_ItemClick(object sender, ItemClickEventArgs e)
{
var items = (sender as ListView).Items;
var route = items[index] as Route;
var id = route.ID;
var data = new RouteParameters { ID = id };
Frame.Navigate(typeof(RouteView), data);
}
RouteParameters类如下所示:
public class RouteParameters
{
public int ID { get; set; }
}
最后在RouteView中我重写OnNavigatedTo,如下所示:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var p = e.Parameter as RouteParameters;
int id = p.ID;
}
我在Frame.Navigate方法中得到Null异常。对不起,如果我错过了一些明显的东西,但是在调试每一行并且没有看到任何空对象之后我无法找出导致错误的原因
答案
好的,所以我发现我以前在RouteView类中添加了一个参数,并且在尝试将数据传递给新视图的不同方法时忘记删除它。这不再是问题,我将在48小时内关闭该线程。
以上是关于UWP重写Frame.Navigate将数据从ListViewItem传递到新的页面casues Null Exception的主要内容,如果未能解决你的问题,请参考以下文章
PrimaryLanguageOverride在发布appxbundle中不起作用
使用 Frame.Navigate(typeof(Page2)) 在 c# windows phone 应用程序中传递多个参数