使用列表动态创建网格

本文关键字:创建 网格 动态 列表 | 更新日期: 2023-09-27 18:22:26

我正在尝试创建一个动态网格,其中的列等于一个月中的天数(稍后我会在网格出现后添加该功能),行等于emplist列表中的对象数量。

到目前为止,这是我的代码。

Grid dategrid = new Grid();
dategrid.Width = 400;
dategrid.HorizontalAlignment = HorizontalAlignment.Left;
dategrid.VerticalAlignment = VerticalAlignment.Top;
dategrid.ShowGridLines = true;
dategrid.Background = new SolidColorBrush(Colors.DimGray);
List<ColumnDefinition> columnlist = new List<ColumnDefinition>();
List<RowDefinition> rowlist = new List<RowDefinition>();
for (int i = 0; i < 31; i++)
{
    columnlist.Add(new ColumnDefinition());
    dategrid.ColumnDefinitions.Add(columnlist[i]);
}
for (int i = 0; i < Control.empList.Count; i++)
{
    rowlist.Add(new RowDefinition());
    dategrid.RowDefinitions.Add(rowlist[i]);
    rowlist[i].Height = new GridLength(45);
}

代码已编译,但表单上没有显示网格。我觉得我错过了一些真正基本的东西,但我一辈子都想不出来。

使用列表动态创建网格

您缺少dategrid.Bind()

您的代码不会显示您在任何地方向页面添加网格。到目前为止,您所展示的只是在内存中实例化一个构建网格。您需要类似gridSpace.controls.add(datagrid)的东西,其中gridspace是页面上的一个容器。类似<div id="gridspace" runat="server"></div>的东西(任何其他容器都可以…)。或者(如果这是winforms)到窗体上的面板或其他容器…