[英]Dynamically add data to columns in GridView
我有以下代碼,一個WPF內動態地創建列GridView
控制時,標題名稱來自string[]
存儲在一個List<string[]>
命名data_org
GridView gv = tabell.View as GridView;
foreach (string s in data_org.ElementAt(0))
{
gv.Columns.Add(new GridViewColumn { Header = s });
}
有沒有辦法在創建列時添加數據? 我在 add column 語句中搜索了這樣做的方法,但找不到方法。
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 設計模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.