2011-07-22 13 views
10

RowDefinitionsを含むGridのすべての内容をクリア/削除したいのですが、どうすればいいですか?WPFグリッドの内容をクリアするには?

ありがとうございます!

+0

あなたは何グリッド話す?グリッドやRowDefinitionsが見えませんか?何を試しましたか? –

+0

WPFグリッド。あなたはそれを聞いたことがありますか? –

+2

私は面倒だった。私の主張は、あなたがグリッドについて語ったことですが、私たちには何のコードも示していませんでした。あなたは何か試したことや何か研究をしたことは述べていません。 –

答えて

18

myGrid.Children.Clear()グリッドにネストされたすべての子コントロールが削除されます。 myGrid.RowDefinitions.Clear()はすべての行定義を削除します。 myGrid.ColumnDefinitions.Clear()はすべての列定義を削除します。

completnessのために、あなたはまた、適切なコレクションのメソッドの追加/削除を通じて単一の項目を追加/削除することができます。コントロールの場合はmyGrid.Children、行の定義の場合はmyGrid.RowDefinitions、列の場合はmyGrid.ColumnDefinitionsです。

この情報のすべてが利用可能であるhere on MSDN

+0

ありがとう! それは動作します! –

+0

子供をクリアした後も、行数と列数は変わりません。それは明確にされていますか? –

-1

(例グリッド)あなたのコンテナコントロールにループに試してみて、このループでは、このようなコントロールの種類を確認してください。

 foreach(DependencyObject c in YourContainer.Children) 
     { 
      //If you only want to modify TextBoxes 
      if(c.GetType().ToString() == "System.Windows.Controls.TextBox") 
      { 
       //Erase Text property of all TextBoxes in my Grid Control 
       ((TextBox)c).Text = ""; 


      } 
     } 
+0

whisを変更するには問題ありません。しかし、最初にOPが尋ねたように、グリッドからコンテンツを削除しようとすると、コレクションを反復しながらコレクションを修正しようとするため、このアプローチは例外的な動作につながります。さらに、あなたのコードでは、型チェックの文字列比較を完全に置き換えることをお勧めします。 ChildrenコレクションのTextBoxesだけを照会することで、foreach(YourContainer.Children.OfTypeのTextBox c ) – ckuepker

関連する問題