使用数据库记录填充按钮中的文本块

本文关键字:文本 按钮 填充 数据库 记录 | 更新日期: 2023-09-27 18:33:40

假设我的数据库表中有 10 行。我想创建 10 个 Button 秒,并在填充数据行的 Button 秒内创建TextBlock。我已经创建了 10 个Button s,其中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;
               } 
  }

好的,我有列表携带来自数据库的数据。我想将数据分发到文本块,那么如何将数据放入文本块?

使用数据库记录填充按钮中的文本块

我认为

,将ItemsControl与适当的ItemTemplate一起使用比在for循环中创建所有控件更好。只需创建一个表示数据的对象列表,将其绑定到 ItemsCOntrol(ItemsSource={Binding your_path}),并为网格设置适当的项模板。之后,将项目控件放在按钮内。如果我理解正确,那应该可以解决你的问题。

您可以使用 XAMLMVVM binding 创建按钮,而不是使用此for循环。

<DataGrid ItemsSource="{Binding btnList}">
    <DataGrid.Columns>
      <DataGridTemplateColumn>
        <DataGridTemplateColumn.CellTemplate>
          <DataTemplate>
            <Button Content="{Binding  btn_NAME}"/>
          </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
      </DataGridTemplateColumn>
    </DataGrid.Columns>
  </DataGrid>

然后从db获取内容并将其填充到btnList中。

要了解有关MVVM binding的更多信息,请浏览这个和这个。