簡體   English   中英

將數據動態添加到 GridView 中的列

[英]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的列中。 相反,您設置了關聯ListViewItemsSource ,在您的情況下是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM