步骤1:
在App.xaml里定义如下内容:
private static Grid root;
public App()
{
this.Startup += this.Application_Startup;
this.Exit += this.Application_Exit;
this.UnhandledException += this.Application_UnhandledException;
InitializeComponent();
}
private void Application_Startup(object sender,StartupEventArgs e)
{
root = new Grid();
root.Children.Add(new MainPage());
this.RootVisual = root;
}
public static void Navigate(UserControl newPage)
{
UserControl oldPage = root.Children[0] as UserControl;
root.Children.Add(newPage);
root.Children.Remove(oldPage);
}
这样一来,程序会先启动MainPage.xaml,
如果想在MainPage里通过点击一个按钮,打开另一个页面的话,按钮的代码:
App app = (App)Application.Current;
Page2 ep = new Page2();
App.Navigate(ep);
这样做的好处就是:可以提前获取要绑定的数据,并绑定到下一个页面的控件里!
比如我用WCF返回了一个ObserableCollection<GetEventsInfo>,就可以对返回的结果直接进行绑定了。
void gc_GetEventsInfoCompleted(object sender,golfDataService.GetEventsInfoCompletedEventArgs e) { if (e.Result != null) { try { App app = (App)Application.Current; Page2 ep = new Page2 (); PagedCollectionView pager = new PagedCollectionView(e.Result); //Page2 页面里的 PageCollectionView ep.events.ItemsSource = pager; //Page2页面里的一个ListBox App.Navigate(ep); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。