2011-04-07 92 views
0

我們假設我已經在我的XAML中定義了兩個Grid和幾個TextBox es。我想在運行時將這些TextBox es放入Grid中(我知道應該在啓動應用程序後將哪些TextBox放入其中Grid)。以編程方式在WPF中用文本框填充網格

我認爲可以在我的C#代碼中簡單地將行定義添加到Grid,但文本框綁定到一些Style

也許有一個簡單的解決方案(完全在XAML中 - 首選)?

所以問題是 - 如何在運行期間動態地使用XAML中定義的項目(文本框)和網格來填充網格?這兩個項目綁定到一些樣式等

在此先感謝您的答覆和提示!

乾杯

+0

請提供您目前的代碼,所以我們可以有一個更好地瞭解什麼你要。我真的認爲最好留下來編寫代碼來做到這一點(更簡單) – 2011-04-07 16:01:33

回答

0

我沒有完全明白你的問題,但如果我理解正確,你希望使用XAML的網格內的TextBoxes。

如果是這種情況

,你可以這樣做:

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

,然後在靜態資源:

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

HTH

0

也許你可以達到你使用ItemsControl想要的結果。

2

好了,我給它一拍:

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(或其他可能的情況是,如果它在父網格中,則邊距可能很大,這會導致控件脫離屏幕)。

然後設置控件列以及行,然後將控件添加到新網格。

編輯:讓我知道如果你想定製它,這樣它遍歷一個網格,所有這一切格文本框刪除到另一個網

相關問題