我有一个小的移动应用程序,它使用XZing.Net
扫描二维码,效果很好。现在我需要在同一页上显示结果,而不是在另一页上。
现在我必须更改我的代码才能在页面中导航。
应用程序.xaml.cs
来自:
public App()
{
InitializeComponent();
MainPage = new MainPage();
}
收件人:
public App()
{
InitializeComponent();
MainPage = new NavigationPage(new MainPage());
}
主页.xaml.cs
来自:
public void Handle_OnScanResult(Result result)
{
Device.BeginInvokeOnMainThread(async () =>
{
await DisplayAlert("Scanned result", result.Text, "OK");
});
}
收件人:
public void Handle_OnScanResult(Result result)
{
Device.BeginInvokeOnMainThread(async () =>
{
await Navigation.PushAsync(new ScannedResult());
});
}
和我的ScanneResult.xaml.cs
public ScannedResult()
{
InitializeComponent();
}
public void LoadResult(string result)
{
LblScannedResult.Text = "rverfcwefcdfcfvcerfgcfcdfcsf";
}
我注意到,通过将MainPage = new MainPage();
更改为MainPage = new NavigationPage(new MainPage())
;扫描仪坏了。
以下是处理扫描成功时的方法:
public void Handle_OnScanResult(Result result)
{
Device.BeginInvokeOnMainThread(async () =>
{
//await Navigation.PushAsync(new ScannedResult()); // it should navigate to another page when the scan is successful.
await DisplayAlert("Scanned result", result.Text, "OK");
});
}
有什么建议吗?PS:如何将结果传递到另一个页面?
导航到ScanneResult页面时传递结果:
public void Handle_OnScanResult(Result result)
{
Device.BeginInvokeOnMainThread(async () =>
{
await Navigation.PushAsync(new ScannedResult(result));
});
}
在ScanneResult页面中,使用参数result创建一个新的构造方法。然后您可以获得扫描结果并在ScanneResult页面中使用:
public partial class ScannedResult : ContentPage
{
public ScannedResult()
{
InitializeComponent();
}
public ScannedResult(string result)
{
InitializeComponent();
var scanResult = result;
LblScannedResult.Text = result;
}
}