2011-04-07 65 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(或其他可能的情况是,如果它在父网格中,则边距可能很大,这会导致控件脱离屏幕)。

然后设置控件列以及行,然后将控件添加到新网格。

编辑:让我知道如果你想定制它,这样它遍历一个网格,所有这一切格文本框删除到另一个网

相关问题