我目前正在使用Windows Phone 8.1 [RT]应用程序,在我的应用程序中,我从类中隐藏了网格可见性。 为此,我在cs页面上创建了一个公共方法
public void HideCancelButton()
{
grdCancle.Visibility = Visibility.Collapsed;
bdrCancel.Visibility = Visibility.Collapsed;
Debug.WriteLine("hide button");
//UpdateLayout();
}
并在helperClass.cs中按以下方式调用该方法
MainPage mypage = new MainPage();
mypage.HideCancelButton();
它将调试"隐藏按钮"但不隐藏网格
我也用
await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,() =>{});
答案 0 :(得分:2)
它不会隐藏网格,因为您没有引用当前显示的MainPage。
无论您在何处调用HideCancelButton方法,都应该获得对主页面的引用。
在你的情况下,最简单的解决方案是做这样的事情(考虑到你没有从MainPage类本身调用方法。
Frame rootFrame = Window.Current.Content as Frame;
MainPage mainPage = rootFrame.Content as MainPage;
if(mainPage != null)
{
await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync
(
Windows.UI.Core.CoreDispatcherPriority.Normal,
() => { mainPage.HideCancelButton(); }
);
}