我一直在使用WPF中的DataGrid
并取得了很好的效果。但是,经过一些更改后,它现在给了我意想不到的结果。
之前:我在页面上有一个DataGrid
。 DataContext
设置为List
对象,该对象是从同一WPF项目中存在的类创建的。 DataGrid
底部的空行,用于添加新记录, 可见
AFTER:相同页面,相同DataGrid
。但现在List对象来自同一解决方案中的类库项目。 EXACT 相同的代码,但它现在被提取到类库中。数据网格底部的空行,用于添加新记录不可见
WTF?
答案 0 :(得分:4)
我想我终于有了答案。基本上,我错了,我确实改变了班级的一小部分。当我读到这个答案时,“灯泡”继续进行:How do I create a new row in WPF DataGrid when it is bound to an XmlDataProvider?
底线:您要绑定的类需要有一个默认构造函数才能显示可编辑的行!
在我的代码中,我确实更改了构造函数(我完全忘了这一点),没有任何默认值。将默认构造函数添加回类中可以解决问题。
答案 1 :(得分:0)
它是什么样的清单?它公开可见的界面是否允许添加项目或者它现在是一个只读列表(例如IEnumerable,ICollection?
答案 2 :(得分:0)
我在设置DataGrid属性IsReadOnly =“True”时遇到了同样的问题。检查您是否具有相同的设置并尝试将其删除以查看会发生什么。
答案 3 :(得分:0)
可能是一些安全问题,甚至是一个错误。我刚看了this:
我发现如果你访问了 ListCollectionView的CanAddRow一次 在使用该系列之前, 奇怪的是CanUserAddRows的 DataGrid成为现实。奇怪!
IEditableCollectionView ecv = new ListCollectionView(myRecordCache); bool b = ecv.CanAddNew; // dummy access MyGrid.DataContext = ecv;