2011-04-07 17 views
0

Gridを2つ定義し、XAMLTextBoxを少し定義したとします。私はTextBoxを実行時にGridに入れたいと思っています(アプリケーションを起動した後にGridになるTextBoxを入れてください)。WPFでテキストボックスをプログラムでグリッドに塗りつぶし

C#コードのGridに行定義を追加することは可能だと考えましたが、テキストボックスはStyleにバインドされています。

多分簡単な解決策があります(完全にXAML - 好ましい)?

したがって、ランタイム中にアイテム(テキストボックス)とXAMLで定義されたグリッドで動的にグリッドを塗りつぶす方法は?両方のアイテムは、いくつかのスタイルなどにバインドします。

お返事とヒントを事前に感謝!

乾杯

+0

にそのグリッドからすべてのテキストボックスを削除するようにそれをカスタマイズしたい場合は、我々は何のより良い理解を持つことができるので、現在お使いのコードを入力してください教えてくださいあなたは欲しい。私は正直なところ、これを行うためにコードを書き留めておく方が良いと思う(簡単に) –

答えて

0

私は完全にあなたに質問をしませんが、私が正しく理解していれば、XAMLを使用してグリッド内にTextBoxが必要です。

これはあなたがすることができる場合

の場合:静的リソースで

<GridViewColumn CellTemplate="{StaticResource editColumnTemplate}"/> 

、その後:

<DataTemplate x:Key="editColumnTemplate"> 
      <TextBox Text="{Binding Path=DataContext.Foo}" /> 
</DataTemplate> 

HTH

0

たぶん、あなたは、あなたがItemsControlを使って、望む結果を得ることができます。

2

[OK]を、ので、私はそれを与えていますショット:

Grid uiElement = (Grid)txt1.Parent; 

     if (uiElement.Children.Contains(txt1)) 
      uiElement.Children.Remove(txt1); 

     txt1.Margin = new Thickness(0); 

     Grid.SetRow(txt1, 3); 
     Grid.SetColumn(txt1, 2); 
     grid.Children.Add(txt1); 

これはコードビハインド(テキストボックス)です。

明らかにコードを設定する必要がありますが、これは基本的な例です。

まずTextBoxを親コントロールから削除する必要があります(コードはグリッドであることを前提としています)。

次に、マージンを0に設定する必要があります(親グリッドにある場合、マージンが大きいためコントロールが画面外になる可能性があります)。

コントロールの列と行を設定し、コントロールを新しいグリッドに追加します。

EDIT:私はあなたはそれがグリッドをループし、別のグリッド

関連する問題