如何创建WPF数据网格而不绑定任何东西

本文关键字:网格 绑定 任何东 数据网 数据 何创建 创建 WPF | 更新日期: 2023-09-27 18:14:22

我想创建一个不绑定任何东西的数据网格。用户可以添加/删除/编辑数据,代码将以编程方式收集数据。我做了以下操作,但网格不允许我添加新行。

<DataGrid Name="dgData" CanUserAddRows="True" MinHeight="100">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Column1"></DataGridTextColumn>
                <DataGridTextColumn Header="Column2"></DataGridTextColumn>
            </DataGrid.Columns>
</DataGrid>

当我运行应用程序时,网格只显示标题。不像winform DataGridView给出一个空的第一行。我无法在GUI上添加新行。

如何创建WPF数据网格而不绑定任何东西

您仍然需要将ItemsSource设置(或绑定)为支持添加的空集合(实现IList),还应该将列绑定到项目数据类型的属性(或让DataGrid为您创建它们),否则它们将不显示任何内容

我知道我的答案很晚了,但是有人可能会来这里并从中受益。所以基本上我没有找到一种在WPF中没有绑定的情况下填充DataGrid的方法,但我找到了一种方法,可以使用动态命名的对象属性与匿名类型进行绑定。

List<object> myList = new List<object>();
dynamic obj = new ExpandoObject();
((IDictionary<String, Object>)obj)["PropertyName"] = "PropertyValue";
myList.Add(obj);
MyDataGrid.ItemsSource = myList;