C# 获取通过trought pushAsync传递的数据

C# 获取通过trought pushAsync传递的数据,c#,visual-studio,xamarin,xamarin.forms,C#,Visual Studio,Xamarin,Xamarin.forms,我正在将数据从视图传递到页面,更确切地说,从recestaview传递到recestaview,显示recestaview中的数据,在xaml文件中使用{Binding}效果很好,但我想在C#中获得相同的数据 我共享数据的方式: receitasview.xaml.cs var selectedItem = e.Item as RecetasModel; var recetaView = new RecetaView(); recetaView.bindingContext = selected

我正在将数据从
视图
传递到
页面
,更确切地说,从
recestaview
传递到
recestaview
,显示
recestaview
中的数据,在
xaml
文件中使用
{Binding}
效果很好,但我想在C#中获得相同的数据

我共享数据的方式:

receitasview.xaml.cs

var selectedItem = e.Item as RecetasModel;
var recetaView = new RecetaView();
recetaView.bindingContext = selectedItem;
await Navigation.PushAsync(recetaView);
var receta = this.BindingContext;
这就是我试图获取的数据:

RecetaView.xaml.cs

var selectedItem = e.Item as RecetasModel;
var recetaView = new RecetaView();
recetaView.bindingContext = selectedItem;
await Navigation.PushAsync(recetaView);
var receta = this.BindingContext;
但这会使我的应用程序崩溃

我真的不知道是什么错误,因为出于某种原因,我无法在我的设备上调试应用程序,我在发布时就这样做了


在C#中是否有其他方法获取共享数据?

您需要正确地强制转换BindingContext

var receta = (RecetasModel)this.BindingContext;

属性BindingContext是类型对象,因此当您从属性获取它时,
recestasmodel
数据实际上是类型对象,因此您需要在使用它之前将它转换为确切的类型

var receta = this.BindingContext as RecetasModel;
if(receta != nulll)
{ //use receta }

当你需要做一些基本的调试时,应用程序仍然崩溃。什么异常导致了崩溃?要么使用调试器找出它,要么将可疑代码包装在try/catch块中。这是可行的,但我必须在appearing方法中执行。