Xamarin C#-是否可以检查当前活动的布局?

时间:2019-01-07 22:30:59

标签: c# android xamarin view

我有问题/疑问吗?

我在自定义导航菜单中创建了一个按钮,因此当我单击该按钮时,它会转到例如Page1。但是现在我只想在当前活动页面不等于Page1的情况下使按钮处于活动状态。这有可能吗?

1 个答案:

答案 0 :(得分:0)

如果我的理解正确,那么您想在显示Page1时禁用该按钮。

大多数(如果不是全部)Xamarin Forms控件都具有IsEnabled属性,因此您希望在false出现时将其设置为Page1,在出现true时将其设置为ContentPage消失了。 onAppearing具有OnDisappearingContentPage个虚拟方法,当页面分别出现和消失时,您可以重写它们以运行代码。

但是,上下文很重要。我对您如何设置自定义导航菜单一无所知,我无法确切地说出如何做到这一点。 OnAppearing的{​​{1}}方法中是否有对按钮的引用?如果不是,则需要某种方式来获取对按钮的引用,或者如果按钮正在使用绑定,则需要对按钮所绑定到的视图模型的引用(假设您正在为的IsEnabled属性使用绑定)按钮),以设置适当的属性以禁用/启用按钮。

编辑:哦,您看到的实际问题是,是否可以看到当前的活动页面。您可以检查Application.Current.MainPage来查看当前处于活动状态的页面,但是如果它是NavigationPage,则必须检索导航堆栈中的最后一页才能查看实际显示的页面。同样,对于任何其他“容器”页面(例如TabbedPage),您也必须查看容器页面实际显示的页面。对于TabbedPage,您将必须检查当前选择的选项卡并获取在那里显示的页面,然后,如果这是NavigationPage,则必须再次检查堆栈中的最后一个页。

相关问题