假设我的数据库表中有10行。我想在填充数据行的Button
内创建10个TextBlock
和Button
。我已经在其中创建了10个Button
和TextBlock
,这里是代码
for (int i = 0; i < 10; i++)
{
Button Btn = new Button();
Style style = this.FindResource("MetroNewButton") as Style;
Btn.Style = style;
Btn.Width = 250;
Btn.Height = 80;
Btn.Name = "BtnCA" + i;
Btn.FlowDirection = FlowDirection.LeftToRight;
Btn.HorizontalAlignment = HorizontalAlignment.Left;
Btn.VerticalAlignment = VerticalAlignment.Top;
for (int j = 0; j < 10; j++)
{
Grid GridContent = new Grid();
GridContent.Width = 250;
GridContent.Height = 80;
TextBlock txtBlock = new TextBlock();
txtBlock.Name = "txtBlock" + j;
txtBlock.TextWrapping = TextWrapping.Wrap;
txtBlock.FontSize = 14;
txtBlock.FontWeight = FontWeights.Bold;
//txtBlock1.FlowDirection = FlowDirection.RightToLeft;
txtBlock.Padding = new Thickness(10, 20, 0, 0);
txtBlock.VerticalAlignment = VerticalAlignment.Top;
Grid.SetRow(txtBlock, 0);
GridContent.Children.Add(txtBlock);
Btn.Content = GridContent;
}
}
好的,我有列表从数据库中携带数据。我想将数据分发到文本块,那么如何将数据放入文本块?
答案 0 :(得分:0)
我认为,使用带有适当ItemTemplate的ItemsControl比创建for循环中的所有控件更好。只需创建一个表示数据的对象列表,将其绑定到ItemsCOntrol(ItemsSource = {Binding your_path}),并为网格设置正确的项模板。之后,将ItemsControl放在一个按钮内。如果我理解你,那应该可以解决你的问题。
答案 1 :(得分:0)
您可以使用for
和XAML
创建按钮,而不是使用此MVVM binding
循环。
<DataGrid ItemsSource="{Binding btnList}">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="{Binding btn_NAME}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
然后从db
获取内容并将其填入btnList
。