在实体框架中,当我从数据源添加拖动时,网格视图仅显示计数和只读列,我也尝试手动分配 datsource 但仍然无法正常工作。
问问题
1256 次
2 回答
4
通过一些研究,我找到了解决方案。
顺便说一句,我首先使用代码。
在父实体中,我将子属性从列表更改为 ObservableCollection。我还将命名空间 System.Collections.ObjectModel 添加到我的类中。
老的:Public Overridable Property PageElements As List(Of PageElement)
新的:Public Overridable Property PageElements As ObservableCollection(Of PageElement)
删除现有的数据源(以及表单中的控件)。然后重新创建您的数据源拖动到窗体。
您可能需要创建一个名为 ObservableListSource 的类并使用它来代替 ObservableCollection,但到目前为止它似乎已经解决了最初的问题。
这是我在网上其他地方找到的 ObservableListSource 的建议定义。
Public Class ObservableListSource(Of T As Class)
Inherits ObservableCollection(Of T)
Implements IListSource
Private _bindingList As IBindingList
Private ReadOnly Property ContainsListCollection() As Boolean Implements IListSource.ContainsListCollection
Get
Return False
End Get
End Property
Private Function GetList() As IList Implements IListSource.GetList
Return If(_bindingList, (InlineAssignHelper(_bindingList, Me.ToBindingList())))
End Function
Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, value As T) As T
target = value
Return value
End Function
EndCLass
于 2012-12-14T19:16:36.647 回答
3
于 2014-01-15T18:40:03.467 回答