从Metro应用程序中的代码动态访问子用户控件中的MainPage控件?

时间:2012-08-29 09:49:38

标签: c# wcf silverlight xaml microsoft-metro

我有一个MainPage,其中部分屏幕我有空网格名为customview,其中我想动态添加和删除不同的视图(不同的用户控件)。现在我以这种方式将一个usercontrol(view1)附加到该空网格(MainPage的一部分): - customview是空网格,view1是我设计的用户控件,并且导航到MainPage我这样做: -

protected override void OnNavigatedTo(NavigationEventArgs e)
{
customview.Children.Clear();
View1 firstview = new View1 ();
customview.Children.Add(firstview); 
}

现在,View1(usercontrol)有一个button1,在该按钮1上单击我必须删除view1并将view2(另一个用户控件)添加到MainPage中存在的名为customview的同一网格中。

我用这种方式试过但没有运气: -

private void button1_Click_1(object sender, RoutedEventArgs e)
{
MainPage main = new MainPage();
View2 secview = new View2 ();
Grid grd = main.FindName("customview") as Grid;
grd .Children.Clear();
grd .Children.Add(secview);
}

请让我知道我在哪里做错了?提前谢谢。

2 个答案:

答案 0 :(得分:0)

Label lbl = (Label)this.Page.FindControl("controlID");
string labelText = lbl.Text;

答案 1 :(得分:0)

考虑使用ContentControl而不是这样做。 使用它,您将能够更改其内容,添加到您想要的任何位置。

将此添加到您的视图中:

            <ContentControl Name="region1ContentControl" 
                        Grid.Row="1"
                        Grid.Column="1"
                        Margin="0,10"                           
                        Style="{StaticResource ContentControlStyle}" />

所以关于你背后的代码,你可以这样做:

region1ContentControl.Content = AnyObject(including views)

这比不断更改视图更容易。

希望有所帮助