0

画面の一部に customview という名前の空のグリッドがある MainPage があり、そこでさまざまなビュー(さまざまなユーザーコントロール)を動的に追加および削除したいと考えています。今、私はこの方法でその空のグリッド(メインページの一部)に1つのユーザーコントロール(view1)をアタッチしました:-カスタムビューは空のグリッドで、ビュー1は私が設計したユーザーコントロールであり、メインページに移動すると、これを実行しています:-

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

現在、View1 (usercontrol) には button1 があり、その button1 をクリックすると、view1 を削除し、mainPage に存在する customview という名前の同じグリッドに view2 (別のユーザー コントロール) を追加する必要があります。

私はこの方法で試しましたが、運はありません:-

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);
}

どこが間違っているのか教えてください。前もって感謝します。

4

2 に答える 2

0

この方法ではなく、ContentControlの使用を検討してください。これを使用すると、コンテンツを変更したり、好きな場所に追加したりできます。

これをビューに追加します:

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

したがって、背後にあるコードでは、次のように実行できます。

region1ContentControl.Content = AnyObject(including views)

これは、常にビューを変更するよりも作業が簡単です。

それが役に立てば幸い

于 2012-08-30T13:11:43.203 に答える
0
Label lbl = (Label)this.Page.FindControl("controlID");
string labelText = lbl.Text;
于 2012-08-29T09:52:32.527 に答える