Xaml 如何使用INavigationAware后退按钮将参数传递到上一页
我在使用INavigationAware代码时遇到问题。我有3页。例如,我把它命名为pageA、pageB和pageC。PageA是一个列表视图,我将使用OnItemSelected将参数传递给pageB PageA视图模型 在pageB中,我将使用OnNavigatedTo获取参数 PageB视图模型 从pageB,我将使用相同的方式将参数发送到pageC。但是现在,我在将参数传递回pageB时遇到了问题。因为我使用的是左上角的InAviation Back按钮,所以我不知道如何将参数传递回pageB。问题是我需要将参数主键传递给所有页面,以便进行选择和更新。请帮帮我。我不确定如何使用OnNavigatedFrom传递参数 PageC视图模型Xaml 如何使用INavigationAware后退按钮将参数传递到上一页,xaml,mvvm,xamarin.forms,prism,viewmodel,Xaml,Mvvm,Xamarin.forms,Prism,Viewmodel,我在使用INavigationAware代码时遇到问题。我有3页。例如,我把它命名为pageA、pageB和pageC。PageA是一个列表视图,我将使用OnItemSelected将参数传递给pageB PageA视图模型 在pageB中,我将使用OnNavigatedTo获取参数 PageB视图模型 从pageB,我将使用相同的方式将参数发送到pageC。但是现在,我在将参数传递回pageB时遇到了问题。因为我使用的是左上角的InAviation Back按钮,所以我不知道如何将参数传递回p
提前谢谢。我不想说显而易见的事情,但是您是否尝试过在OnNavigatedFrom方法中添加参数集合
public void OnNavigatedFrom(NavigationParameters parameters)
{
parameters.Add("test", "testValue");
}
我不想说显而易见的事情,但是您是否尝试过在OnNavigatedFrom方法中添加参数集合
public void OnNavigatedFrom(NavigationParameters parameters)
{
parameters.Add("test", "testValue");
}
我使用Xamarin.Essentials SecureStorage来实现此结果,只需使用密钥将您的值插入SecureStorage,然后在需要时再次获取: 导航到PageB时保存参数:
SecureStorage.SetAsync("current_id", YourParameterValue);
当在OnAppearing事件中返回到BageB时,将覆盖从SecureStorage获取值的事件:
protected override void OnAppearing()
{
base.OnAppearing();
var CurrentId = long.Parse( SecureStorage.GetAsync("current_id").Result);
this.BindingContext = new PageBViewModel(CurrentId) ;
}
假设你的身份证是长的
注意:我不确定这是否是一种干净的方法,但它确实有效。我使用Xamarin.Essentials SecureStorage来实现此结果,只需使用密钥将您的值插入SecureStorage,然后在需要时再次获取: 导航到PageB时保存参数:
SecureStorage.SetAsync("current_id", YourParameterValue);
当在OnAppearing事件中返回到BageB时,将覆盖从SecureStorage获取值的事件:
protected override void OnAppearing()
{
base.OnAppearing();
var CurrentId = long.Parse( SecureStorage.GetAsync("current_id").Result);
this.BindingContext = new PageBViewModel(CurrentId) ;
}
假设你的身份证是长的
注意:我不确定这是一种干净的方法,但它确实有效。您考虑过使用服务吗?如果所有页面都必须知道当前项目,那么将其全局可用可能是一种替代方法,而不是一直将其传递。如何使其全局可用?对不起,我完全是个新手。通过一个可供所有视图模型使用的服务,您考虑过使用该服务吗?如果所有页面都必须知道当前项目,那么将其全局可用可能是一种替代方法,而不是一直将其传递。如何使其全局可用?抱歉,我完全是一个新手。通过一个可供所有视图模型使用的服务,调用GoBackAsync时不会调用NavigatedFrom,这仅在iOSOnNavigatedFrom上发生。调用GoBackAsync时不会调用NavigatedFrom,这仅在iOS上发生