C# 向GridView中的列动态添加数据
我有以下代码可以在WPFC# 向GridView中的列动态添加数据,c#,wpf,listview,gridview,C#,Wpf,Listview,Gridview,我有以下代码可以在WPFGridView控件中动态创建列,标题名称来自字符串[],该字符串存储在列表中名为数据组织 GridView gv = tabell.View as GridView; foreach (string s in data_org.ElementAt(0)) { gv.Columns.Add(new GridViewColumn { Header = s }); } 在我创建列时有没有添加数据的方法?我在addcolumn语句中搜索了一些方法,但找不到方法 gv.
GridView
控件中动态创建列,标题名称来自字符串[]
,该字符串存储在列表中
名为数据组织
GridView gv = tabell.View as GridView;
foreach (string s in data_org.ElementAt(0))
{
gv.Columns.Add(new GridViewColumn { Header = s });
}
在我创建列时有没有添加数据的方法?我在addcolumn语句中搜索了一些方法,但找不到方法
gv.Columns.Add(new GridViewColumn{Header = s, **statement to add data to column**});
我的数据存储在另一个
列表中
,其中每个项目float[]
表示一列。我是否也需要做一些事情来处理该数据类型(float[]
)?您不需要将数据项直接添加到GridView
的列中。相反,您可以设置关联的ListView
的ItemsSource
,在您的案例中,它是tabell
tabell.ItemsSource = /* Set a binding or assign an items collection. */;
然后,使用displaymberbinding
为数据项上的每个列创建对应属性的绑定,这些属性应显示在列中
var gridViewColumn = new GridViewColumn
{
Header = s,
DisplayMemberBinding = new Binding(/* Binding property path / name of the property. */);
};
由于每个列只有一个float
s列表,因此应该首先创建一个合适的数据项类型。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.
- 为每列添加显示成员绑定
var gridViewColumn = new GridViewColumn { Header = s, DisplayMemberBinding = new Binding(nameof(MyDataItem.Number)); };
那么它应该会起作用。不过,我建议您看看MVVM设计模式。非常感谢!我的问题是,我不知道运行前的列数。我只知道它们是花车。所以,就我所知,创建一个基于行的类,其中每个属性表示一个列是不可能的?
var gridViewColumn = new GridViewColumn
{
Header = s,
DisplayMemberBinding = new Binding(nameof(MyDataItem.Number));
};