我有一个DataGrid
有三列(步骤编号,要求编号,说明)。运行应用程序后,用户应选择一个Excel电子表格,我将从此电子表格中提取信息以填入我的DataGrid
。在我的代码中,我已经拥有了我需要的字符串,我只需要知道如何以编程方式添加一行,然后用这些字符串填充所述行。
继承我的DataGrid
:
<DataGrid x:Name="dataGrid" Margin="10,167,11,10"
SelectionChanged="dataGrid_SelectionChanged" MinColumnWidth="22">
<DataGrid.Columns>
<DataGridTextColumn Header="Step Number" />
<DataGridTextColumn Header="Requirement" />
<DataGridTextColumn Header="Description" Width="*" />
</DataGrid.Columns>
</DataGrid>
以下是我想要在其中创建行的循环:
foreach (KeyValuePair<string, List<int>> Req in reqLocations)
{
//create row
// ADD INFO FROM DICTIONARY INTO A ROW
}
答案 0 :(得分:1)
在同意评论后,如果您仍想查看....下面是您的XAML的简单示例
创建一个包含所有数据列标题的简单类
public class dataGriditems
{
public string StepNumber { get; set; }
public string Requirement { get; set; }
public string Description { get; set; }
}
在XAML中为每列添加绑定,并确保绑定名称与类属性相同,您将作为项目源添加(在本例中为上面的类)
<DataGridTextColumn Header="Step Number" Binding="{Binding StepNumber}" />
<DataGridTextColumn Header="Requirement" Binding="{Binding Requirement}" />
<DataGridTextColumn Header="Description" Binding="{Binding Description}" Width="*" />
在XAML中为数据网格设置AutoGenerateColumns =“False”。
<DataGrid x:Name="dataGrid" Margin="10,167,11,10"
SelectionChanged="dataGrid_SelectionChanged" MinColumnWidth="22" AutoGenerateColumns="False">
在代码中,创建一个上面定义的类的简单对象列表,并将列表分配给dataGrid.ItemsSource
,如下所示
List<dataGriditems> items = new List<dataGriditems>();
items.Add(new dataGriditems() { StepNumber = "one", Requirement = "req1", Description = "desc1"});
items.Add(new dataGriditems() { StepNumber = "two", Requirement = "req2", Description = "desc2" });
items.Add(new dataGriditems() { StepNumber = "three", Requirement = "req3", Description = "desc3" });
items.Add(new dataGriditems() { StepNumber = "four", Requirement = "req4", Description = "desc4" });
dataGrid.ItemsSource = items;