[英]UWP Overriding Frame.Navigate to pass data from ListViewItem to new Page 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小時內關閉該線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.