mvvm - 绑定(bind)到 UWP 数据网格的动态列数(Windows 社区工具包)

标签 mvvm datagridview uwp

有没有人将动态列数绑定(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/

相关文章:

c# - 通过数组循环项目的最佳实践

javascript - 在WebView UWP中通过ID获取dom元素

c# - 两个 View 模型之间的通信

WPF MVVM 绑定(bind)错误

c# - silverlight 4 MVVM如何使用两种形式在网格上编辑EF4

css - UWP:如何呈现多列 WebView 而不是垂直滚动条

c# - Metro风格的应用UI设计: Pages vs Scenarios

c# - 从另一个表单刷新 dataGridView

.net - 如何将 "insert new row"设置为 DataGridView 中的第一行

c# datagridview - 获得高级粘贴功能