我有一個 Xamarin 表單應用程式,其表單拆分為多個頁面,我想將物件資料傳遞到下一頁或上一頁。我正在使用 Xamarin Shell 進行導航。我可以使用什么方法或設定來實作這一目標?
我知道的選項以及我對它們的感知問題:
- JSON 字串物件并將其作為引數傳遞。
這似乎不正確,因為資料正在來回轉換。
- 將物件的每個屬性作為單獨的引數傳遞。
大量冗長,具有許多屬性,并且無法靈活更改。
- 將資料存盤到 SQLite 資料庫。
我不想在表中存盤不完整的記錄并使用當前的 SQLiteAsyncConnection,我不相信我可以從同一個類創建 2 個表。
uj5u.com熱心網友回復:
是的,您可以使用查詢屬性屬性傳遞資料。
可以通過使用每個查詢引數的 QueryPropertyAttribute 裝飾接收類來接收導航資料。
有關更多資訊,請查看:https ://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/shell/navigation#process-navigation-data-using-query-property-attributes 。
此外,另一種方法是在您的應用程式中創建一個全域變數,您可以在您的應用程式中訪問此變數。
例如:
1.創建類MyVariables.cs并為您的模型添加靜態變數(例如MyViewModel ):
public class MyVariables
{
public static MyViewModel myViewModel { get; set; } = new MyViewModel { Name = "test1" };
}
MyViewModel.cs
public class MyViewModel
{
public string Name { get; set; }
}
2.您可以在您的應用程式中修改或訪問您的變數:
// modify the variable
MyVariables.myViewModel.Name = "test2022";
// access the variable
System.Diagnostics.Debug.WriteLine("the data is: " MyVariables.myViewModel.Name);
uj5u.com熱心網友回復:
不幸的是,我們現在只能傳遞簡單的資料。并且此功能將在未來添加:https ://github.com/xamarin/Xamarin.Forms/issues/6848您可以創建多個 QueryPropertyAttribute 來訪問不同的資料:https ://docs.microsoft.com/en-us /xamarin/xamarin-forms/app-fundamentals/shell/navigation#pass-data另一種方法是將物件轉換為 JSON 字串,例如:
var jsonStr = JsonConvert.SerializeObject(model); 然后在導航時通過它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/473734.html
