我在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个属性值number
,name
和type
,然后是Value[index].parameter
的值。
Values
大小是动态分配的,我宁愿主要使用c#代码而不是xaml代码。
另外,我需要更改单元格中的值(数字除外)。
我可以为此实施一个事件吗?
谢谢!
答案 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>