0

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

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

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

前 3 列是Number, Name, Type. 其他是40个参数名称Value[index].parameterName).

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

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

有没有我可以为此实施的事件?

谢谢!

4

1 回答 1

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>
于 2013-10-08T12:40:35.723 回答