有没有人将动态列数绑定(bind)到 UWP 中的数据网格的示例项目?在 WPF 中,我可以使用 Telerik Datagrid 处理可观察的动态对象集合。但在 UWP Telerik 中不支持动态对象。我尝试过使用 Windows Community Toolkit 数据网格,但也失败了。
最佳答案
Dynamic number of columns bound to a UWP datagrid (Windows Community Toolkit)
源自 Samed Bejtovic 的 reply .我们可以使用 在后面的代码中创建动态列数Windows 社区工具包
DataGrid
.填写前DataGrid
,我们需要将集合转换为 DataTable
, 例如。以下是加载csv文件并将数据插入到DataTable
.var dt = new DataTable();
bool firstLine = true;
var sr = new StreamReader("Assets\\Archive.csv");
while (sr.Peek() >= 0)
{
if (firstLine)
{
firstLine = false;
var cols = sr.ReadLine().Split(',');
foreach (string col in cols)
dt.Columns.Add(new DataColumn(col, typeof(string)));
}
else
{
var data = sr.ReadLine().Split(',');
dt.Rows.Add(data);
}
}
然后我们调用
FillDataGrid(dt,MyDataGrid)
可以添加 Columns
进入 DataGrid
基于以上DataTable
.public static void FillDataGrid(DataTable table, DataGrid grid)
{
grid.Columns.Clear();
for (int i = 0; i < table.Columns.Count; i++)
{
grid.Columns.Add(new DataGridTextColumn()
{
Header = table.Columns[i].ColumnName,
Binding = new Binding { Path = new PropertyPath("[" + i.ToString() + "]") }
});
}
var collection = new ObservableCollection<object>();
foreach (DataRow row in table.Rows)
{
collection.Add(row.ItemArray);
}
grid.ItemsSource = collection;
}
关于mvvm - 绑定(bind)到 UWP 数据网格的动态列数(Windows 社区工具包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58856755/