[英]Binding WPF datagrid to a List<List<object>>
我有一個列表的對象List<List<object>>
,我想以編程方式將其綁定到WPF數據網格。
到目前為止,我嘗試過:
碼
dtgCores.ItemsSource = resinSystemData.data;
XAML
<DataGrid Name="dtgCores" Grid.Column="1">
但我只獲得2列容量和計數。 有人可以建議嗎?
我有一個列表,我想以列表的格式使用列標題。
如果oyu需要更多信息,請告訴我。
數據網格不是為此而設計的。 它需要列的屬性(因此容量和計數)。
你需要選擇:
List<SomeClass>
默認情況下, DataGrid
會將列綁定到它作為ItemSource
接收的直接列表中的對象的屬性。 這就是為什么當使用List<List<object>>
作為'ItemSource'時,每一行將顯示List
, Capacity
和Count
的兩個屬性。
但是,您可以為每個列創建自己的DataGridColumn
,並將它們綁定到列表的索引。 這是一個例子:
public void SetTestDataInGrid(List<List<object>> testData)
{
testGrid.Columns.Clear();
int colCount = testData.Max(x => x.Count);
for (int i = 0; i < colCount; i++)
{
var currentColumn = new DataGridTextColumn();
currentColumn.Binding = new Binding(string.Format("[{0}]", i));
testGrid.Columns.Add(currentColumn);
}
testGrid.ItemsSource = testData;
}
此方法檢查內部列表的最大長度以確定列數,然后為每列創建DataGridTextColumn
,將每個列綁定到內部列表的正確索引( [0]
, [1]
等),然后將ItemSource
設置為testData
。
您可能還想將AutoGenerateColumns="False"
添加到DataGrid
以防止創建Capacity
和Count
列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.