微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight动态加载Silverlight页面

步骤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] 举报,一经查实,本站将立刻删除。

相关推荐