2016-05-04 6 views
0

私はWPFでグリッドにUserControlを追加しようとしていますが、MyGrid.Children.Add(UserControl)経由で追加しようとすると表示されません。だから私は私のグリッドの子の数を表示しようとし、それはusercontrolを追加した後1と言います。 (MyGrid.Children.Clear()も動作しません。グリッドをクリアした後、0の子が残っていると言いますが、自分のプログラムをコンパイルするときにUiElementsが残っています)WPFユーザーコントロールがグリッドに表示されない

この問題は1つの関数。他の関数(同じクラス)では、簡単に同じグリッド(myGrid)に子を追加できます。

マイコード:

 private void AddDateOnClick(object sender, MouseButtonEventArgs e) 
     { 
      MyGrid.Children.Clear();   
      UserControlAddDate ucad = new UserControlAddDate(); 
      MyGrid.Children.Add(ucad); 
      MessageBox.Show(MyGrid.Children.Count.ToString()); //Only to test if there are some childs 
     } 

私はそれがグリッドをクリアし、他の機能(同じクラス)にこのグリッドをクリアしてみてください。この機能のクリアのみが問題です。私はなぜ理解していないのですか?

+0

テンプレートとデータバインディングを使用します。フレームワークとの戦いにあなたの時間を無駄にしないでください。 –

答えて

0

このUserControlAddDateとはなんですか?たぶんそれは初期化されていません。だからこそグリッドに追加されていないのです。 グリッドにテキストボックスを追加し、グリッドが機能しているかどうかを確認してください。それが動作している場合、それはあなたのコードの問題です。

Ed Plunkettが述べたように、テンプレートとデータバインディングを使用してみてください。 WPFで作業する最善の方法です。

これはとにかくお試しください。

private void AddDateOnClick(object sender, MouseButtonEventArgs e) 
{ 
    MyGrid.Children.Clear();   
    TextBox ucad = new TextBox(); 
    ucad.Text = “TEST”; 
    MyGrid.Children.Add(ucad); 
    MessageBox.Show(MyGrid.Children.Count.ToString()); //Only to test if there are some childs 
} 
関連する問題