[英]Pass array parameters between pages
我試圖將數組從page1.xaml傳遞給page2.xaml。
int[] array = new int[] { 2,4,6,8,10,12,14,15,17,19,21,23,25,27,28,30,32,34,36,38,40,42,43,45,47,49,51,53,55,56,58,60,62,64,66,68,70,71,73,75,77,79,81,83,84,86,88,90,92,94,96,98,99
};
NavigationService.Navigate(new Uri("/Page2.xaml?Parameter" + array, UriKind.Relative));
我如何在page2中獲得此數組值?
通過導航傳遞URL參數僅對少數情況有用:
這對於活動磁貼或指示應用程序的狀態等非常有用。
如果您要在頁面之間傳遞更復雜的數據,特別是如果傳遞了該數據的頁面不是導航目標,則絕對不要這樣傳遞。
(如果必須 ,則可以將其編碼為JSON,然后對其進行urlencode,但不能)。
為此使用服務或存儲庫模式。
ID:
App.xaml.cs
,創建服務並將其與DI一起傳遞給頁面。 int[] array = new int[] { 2,4,6,8,10,12,14,15,17,19,21,23,25,27,28,30,32,34,36,38,40,42,43,45,47,49,51,53,55,56,58,60,62,64,66,68,70,71,73,75,77,79,81,83,84,86,88,90,92,94,96,98,99
};
you could use join function like this
string str= string.Join("-", array.ToArray());
NavigationService.Navigate(new Uri("/Page2.xaml?Parameter="+str, UriKind.Relative));
And in destination page get this passed query string using split function like this
str.Split('-');
而不是將數組作為查詢字符串傳遞。使用Global靜態類保存值。 只需在另一個位置使用該類的對象即可,並在任務完成時創建該類的新對象。
你可以試試這個
page.NavigationService.Navigate(new Uri("/Page2.xaml?Parameter="+array, UriKind.Relative));
目標頁面:
string parameter = string.Empty;
if (NavigationContext.QueryString.TryGetValue("parameter", out parameter)) {
this.label.Text = parameter;
}
請注意,您正在創建不帶'='的uri。 請改正。
也請檢查這個問題,這里有很好的解釋:
編輯:以上建議可能不適用於除字符串以外的任何內容,請查看詳細的解決方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.