2016-08-16 84 views
0

我有一个小问题导航到动态创建的页面(使用C#& XAML(visual studio 2015 edition)。 我可以创建页面(我假设),但是当我导航到它们时,我原来的页面导航动态创建页面

我想这可能是与指向Dynamic_Page_1页(此页面上没有任何内容)的test/test2的GetType有关,但我该如何强制它使用我正在修改的新实例?

  // Dynamic Page One 
      Dynamic_Page_1 test = new Dynamic_Page_1(); 
      Button b = new Button { Content = "DYNAMIC TEST ONE", FontSize = 22, FontWeight = FontWeights.Bold }; 
      test.Stack().Children.Add(b); 

      // Dynamic Page Two 
      Dynamic_Page_1 test2 = new Dynamic_Page_1(); 
      TextBlock t1 = new TextBlock {Text = "DYNAMIC TEST TWO" }; 
      test2.Stack().Children.Add(t1); 

      // Dynamically create buttons which link to both Dynamically created pages 
      Button b3 = new Button { Content = "GO TO TEST ONE", }; 
      Button b4 = new Button { Content = "GO TO TEST TWO", }; 

      b3.Click += (s, e) => { 
       Frame.Navigate(test.GetType()); 
      }; 
      b4.Click += (s, e) => 
      { 
       Frame.Navigate(test2.GetType()); 
      }; 

      stackPanel1.Children.Add(b3); 
      stackPanel1.Children.Add(b4); 
+0

Stack()只是stackPanel的公共属性,它位于Dynamic_Page_1上 – Dan

回答

0

我通过穿过堆栈面板最后修复了这个问题

Frame.Navigate(typeof(Dynamic_Page_1), stackPanel1); 

然后修改navigateTo部件以查找它。

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    StackPanel stack = (StackPanel) e.Parameter; 
    // Do something with stackpanel. 
}