转换到Xamarin.Forms中现有的ContentPage实例
我有一个Xamarin.Forms应用程序,带有转换到Xamarin.Forms中现有的ContentPage实例,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我有一个Xamarin.Forms应用程序,带有MyWebViewPage:ContentPage,它在App.xaml.cs中设置为MainPage。每次使用wait Navigation.PushAsync(new MyWebViewPage())从应用程序中的其他页面在主页面上进行转换时,都会在内存中创建一个MyWebViewPage类型的新实例。我是否可以在不创建此类型的新实例的情况下在现有的页面MyWebViewPage实例上实现转换?我在这个页面上使用媒体播放器,它与SignalR链
MyWebViewPage:ContentPage
,它在App.xaml.cs中设置为MainPage。每次使用wait Navigation.PushAsync(new MyWebViewPage())
从应用程序中的其他页面在主页面上进行转换时,都会在内存中创建一个MyWebViewPage类型的新实例。我是否可以在不创建此类型的新实例的情况下在现有的页面MyWebViewPage实例上实现转换?我在这个页面上使用媒体播放器,它与SignalR链接,这个播放器播放声音的次数与创建这种类型的实例的次数相同。所以我只需要有一个这种类型的实例。谢谢您的帮助。您是否尝试过保存实例并导航到同一实例?因此,不要这样做:
await Navigation.PushAsync(new MyWebViewPage());
你可以:
await Navigation.PushAsync(_webViewPage ??= new MyWebViewPage());
或者如果你不喜欢三元:
if (_webViewPage == null)
_webViewPage = new MyWebViewPage();
await Navigation.PushAsync(_webViewPage);
好的,差不多清楚了。我是否应该将MyWebViewPage的一个实例传递给我要从中进行转换的页面?我会将其保存在相关的位置。如果它是整个应用程序使用的共享资源。然后,我会考虑将它实例化到一个可以访问该实例的地方。@安德烈。一个例子,您可以使用您的播放器页面实例或尝试使用IOC。