Xamarin Forms:将参数传递给 ContentPage 的最佳方式
Xamarin Forms: Best way to pass parameters to a ContentPage
我应该收到你的 opinion/advice。我正在创建一个应用程序,用户可以在其中 select 从网格中选择一个选项。
我有一个函数,可以从 DashSquare 列表创建一个网格。
public class DashSquare {
public string IconImage { get; set; }
public string Text { get; set; }
public int Column { get; set; }
public int Row { get; set; }
public Type NavigateType { get; set; }
}
点击一个网格项目后,我将打开另一个 ContentPage,一个对应网格中的每个选项。我必须始终向这个新页面传递相同的参数。现在我在主 ContentPage
中使用通用函数
widget.Tapped += async (s, e) => {
var page = Activator.CreateInstance(e.Page) as Page;
await Navigation.PushAsync(page);
};
打开一个新页面,但我无法传递参数。我的想法是创建一个接口 IMyPage,每个页面都依赖于 ContentPage 和 IMyPage。
如何检查此页面是否实现了 IMyPage?我怎样才能传递参数?有没有正确的实现方式?
提前致谢
我们使用与 Activator.CreateInstance()
相同的代码。您只需要像这样使用 CreateInstance()
重载:
var page = Activator.CreateInstance(e.Page, param1, param2) as Page;
await Navigation.PushAsync(page);
我应该收到你的 opinion/advice。我正在创建一个应用程序,用户可以在其中 select 从网格中选择一个选项。
我有一个函数,可以从 DashSquare 列表创建一个网格。
public class DashSquare {
public string IconImage { get; set; }
public string Text { get; set; }
public int Column { get; set; }
public int Row { get; set; }
public Type NavigateType { get; set; }
}
点击一个网格项目后,我将打开另一个 ContentPage,一个对应网格中的每个选项。我必须始终向这个新页面传递相同的参数。现在我在主 ContentPage
中使用通用函数 widget.Tapped += async (s, e) => {
var page = Activator.CreateInstance(e.Page) as Page;
await Navigation.PushAsync(page);
};
打开一个新页面,但我无法传递参数。我的想法是创建一个接口 IMyPage,每个页面都依赖于 ContentPage 和 IMyPage。
如何检查此页面是否实现了 IMyPage?我怎样才能传递参数?有没有正确的实现方式?
提前致谢
我们使用与 Activator.CreateInstance()
相同的代码。您只需要像这样使用 CreateInstance()
重载:
var page = Activator.CreateInstance(e.Page, param1, param2) as Page;
await Navigation.PushAsync(page);