5

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

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

当我运行应用程序时,网格仅显示标题。与第一行为空的 winform DataGridView 不同。我无法在 GUI 上添加新行。

4

2 回答 2

4

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

于 2013-05-20T20:07:17.223 回答
0

我知道我的回答已经很晚了,但仍然有人可能会来这里并从中受益。所以基本上我没有找到一种方法来填充 DataGrid 而无需在 WPF 中进行绑定,但我找到了一种方法来使用具有动态命名的对象属性的匿名类型进行绑定。

List<object> myList = new List<object>();
dynamic obj = new ExpandoObject();
((IDictionary<String, Object>)obj)["PropertyName"] = "PropertyValue";
myList.Add(obj);
MyDataGrid.ItemsSource = myList;
于 2021-12-23T13:27:43.687 回答