C#wpf中的数据网格与自定义类

时间:2013-10-08 10:56:07

标签: c# wpf datagrid

我在C#中有一个看起来像这样的课程:

class Program
{
   string name;
   float number;
   string type;
   Value[] parameters=new Value[40];
}
class Value
{
   float parameter;
   string parameter name;
}

另外,我有一个DataGrid应该是这样的:

前3列为NumberNameType。 其他的是40个参数名称Value[index].parameterName).

DataGrid中的每一行都应该代表一个Program对象,并显示3个属性值numbernametype,然后是Value[index].parameter的值。

Values大小是动态分配的,我宁愿主要使用c#代码而不是xaml代码。 另外,我需要更改单元格中的值(数字除外)。

我可以为此实施一个事件吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,我想建议您应该使用List of Value类而不是Array(因为您的大小不是预先知道的),如

class Program
{
   string name;
   float number;
   string type;
   List<Value> parameters;
}

现在,您应该在DataGrid中创建DataGridTemplateColumn以显示动态大小参数,例如

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Program}">
        <DataGrid.Columns>
            <DataGridTemplateColumn>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ListBox ItemsSource="{Binding parameters}">
                          <ListBox.ItemsPanel>
                              <ItemsPanelTemplate>
                                  <StackPanel IsItemsHost="True" Orientation="Horizontal"/>
                              </ItemsPanelTemplate>
                          </ListBox.ItemsPanel>
                        </ListBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>