动态向 GridView 中的列添加数据
Dynamically add data to columns in GridView
我有以下代码在 WPF GridView
控件中动态创建列,header 名称来自存储在 List<string[]>
中的 string[]
data_org
GridView gv = tabell.View as GridView;
foreach (string s in data_org.ElementAt(0))
{
gv.Columns.Add(new GridViewColumn { Header = s });
}
有没有办法在我创建列时添加数据?我在添加列语句中搜索了执行此操作的方法,但找不到方法。
gv.Columns.Add(new GridViewColumn{Header = s, **statement to add data to column**});
我的数据存储在另一个 List<float[]>
中,其中每个项目 float[]
代表一列。我是否也必须做一些事情来处理该数据类型 (float[]
)?
您不会将数据项直接添加到 GridView
的列中。相反,您设置关联 ListView
的 ItemsSource
,在您的情况下是 tabell
。
tabell.ItemsSource = /* Set a binding or assign an items collection. */;
然后您将为每一列创建绑定到您的数据项的相应属性,这些属性应该使用 DisplayMemberBinding
.
显示在列中
var gridViewColumn = new GridViewColumn
{
Header = s,
DisplayMemberBinding = new Binding(/* Binding property path / name of the property. */);
};
由于每列只有 float
的列表,因此您应该首先创建合适的数据项类型。 ItemsSource
需要一个包含每列属性的项目列表,它代表一行。
你现在要做的是:
创建包含每列属性的行数据类型
public class MyDataItem
{
public float Number { get; }
// ...properties for other columns..
}
使用浮动列表中的数据创建这些数据项的集合。
var myDataItemList = new List<MyDataItem>();
// ...create data items, add your data and add the items to the list.
将列表指定为 ListView
的项目源。
tabell.ItemsSource = myDataItemList;
为每列添加显示成员绑定。
var gridViewColumn = new GridViewColumn
{
Header = s,
DisplayMemberBinding = new Binding(nameof(MyDataItem.Number));
};
那么应该可以了。但是,我建议你看看 MVVM 设计模式。
我有以下代码在 WPF GridView
控件中动态创建列,header 名称来自存储在 List<string[]>
中的 string[]
data_org
GridView gv = tabell.View as GridView;
foreach (string s in data_org.ElementAt(0))
{
gv.Columns.Add(new GridViewColumn { Header = s });
}
有没有办法在我创建列时添加数据?我在添加列语句中搜索了执行此操作的方法,但找不到方法。
gv.Columns.Add(new GridViewColumn{Header = s, **statement to add data to column**});
我的数据存储在另一个 List<float[]>
中,其中每个项目 float[]
代表一列。我是否也必须做一些事情来处理该数据类型 (float[]
)?
您不会将数据项直接添加到 GridView
的列中。相反,您设置关联 ListView
的 ItemsSource
,在您的情况下是 tabell
。
tabell.ItemsSource = /* Set a binding or assign an items collection. */;
然后您将为每一列创建绑定到您的数据项的相应属性,这些属性应该使用 DisplayMemberBinding
.
var gridViewColumn = new GridViewColumn
{
Header = s,
DisplayMemberBinding = new Binding(/* Binding property path / name of the property. */);
};
由于每列只有 float
的列表,因此您应该首先创建合适的数据项类型。 ItemsSource
需要一个包含每列属性的项目列表,它代表一行。
你现在要做的是:
创建包含每列属性的行数据类型
public class MyDataItem { public float Number { get; } // ...properties for other columns.. }
使用浮动列表中的数据创建这些数据项的集合。
var myDataItemList = new List<MyDataItem>(); // ...create data items, add your data and add the items to the list.
将列表指定为
ListView
的项目源。tabell.ItemsSource = myDataItemList;
为每列添加显示成员绑定。
var gridViewColumn = new GridViewColumn { Header = s, DisplayMemberBinding = new Binding(nameof(MyDataItem.Number)); };
那么应该可以了。但是,我建议你看看 MVVM 设计模式。