2

在实体框架中,当我从数据源添加拖动时,网格视图仅显示计数和只读列,我也尝试手动分配 datsource 但仍然无法正常工作。

4

2 回答 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 回答