使用自制arraylist填充DataGrid

时间:2017-04-25 11:16:13

标签: c# wpf

我正在制作一个通用转换器,它会读取你扔进去的任何文件,其中包含#34; map"它的数据如下:

我有三节课: DataValue,具有值,行和列属性。 DataArray,它是DataValues的列表。 DataArrayList,它是DataArrays的列表。

我尝试将其放在具有非预设置列的数据网格中,因为它应该能够读取任何内容。

这里有一些代码:

public void FillRows(DataArrayList arrayList)
    {
        DataArray headers = arrayList.First();
        AddColumns(headers);

        DataList = new List<DataArray>();
        lijstitems = new List<DataValue>();


        foreach (DataArray dataArrays in arrayList)
        {
            DataList.Add(new DataArray { datavalues = dataArrays.datavalues });
        }
        DataContext = this;
    }

现在这给了我数组的通用名称,作为测试,我试图在文本框中显示它。现在我想知道如何获得一个将每个DataValue显示为新列的设置。

 private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        DataArray array = (DataArray)DataGrid.SelectedItem;
        var arraychar = array.datavalues.ToArray();

            textBox1.Text = arraychar[0].value.ToString();
            textBox2.Text = arraychar[1].value.ToString();
            textBox3.Text = arraychar[2].value.ToString();
            textBox4.Text = arraychar[3].value.ToString();
            textBox5.Text = arraychar[4].value.ToString();            
    }

这会显示我输入的正确值。

1 个答案:

答案 0 :(得分:0)

定义要在DataGrid中显示的每个值的列:

DataGrid.AutoGenerateColumns = false;
DataGrid.Columns.Add(new DataGridTextColumn() { Binding = new Binding("[0]") });
DataGrid.Columns.Add(new DataGridTextColumn() { Binding = new Binding("[1]") });
DataGrid.Columns.Add(new DataGridTextColumn() { Binding = new Binding("[2]") });
DataGrid.Columns.Add(new DataGridTextColumn() { Binding = new Binding("[3]") });
DataGrid.Columns.Add(new DataGridTextColumn() { Binding = new Binding("[4]") });