WPF树视图实体框架层次结构声明性绑定

时间:2018-09-15 22:47:28

标签: wpf data-binding treeview hierarchyid

我正在尝试使用声明性绑定将实体框架对象绑定到树视图。对象所基于的SQL表是一个SQL层次表。这是模式:

CREATE TABLE [dbo].[lkpSource](
         [OrgNode] [hierarchyid] NOT NULL,
         [OrgLevel]  AS ([OrgNode].[GetLevel]()),
         [ID] [uniqueidentifier] NOT NULL,
         [Title] [nvarchar](50) NOT NULL,
         [HierarchyString]  AS ([OrgNode].ToString()) PERSISTED,
             CONSTRAINT [PK__lkpSourc__C1ECAF2A53908500] 
                        PRIMARY KEY CLUSTERED ([ID] ASC)
                        WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
                        IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
                        ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[lkpSource] ADD  DEFAULT (newid()) FOR [ID]
GO

string字段来自于我试图使绑定起作用的多种技术之一,在代码中,我还在属性声明的上方添加了[DatabaseGenerated(DatabaseGeneratedOption.Computed)]

我在XAML窗口中有一个数据源。资源:

<CollectionViewSource x:Key="sourceViewSource" 
                      d:DesignSource="{d:DesignInstance {x:Type
                      local:lkpSource}, CreateList=True}"/>

类似的数据源已成功绑定到应用程序中的数据网格,因此我似乎已经正确设置了上下文,并且一切都设置正确。

我花了大约12个小时来尝试在互联网上发现的各种不太适用的东西-他们没有使用实体框架,或者没有使用层次结构数据,或者不是WPF-什么都不起作用,甚至差一点。

可以声明性地绑定它吗?如果是这样,有人可以发布一个简短的Treeview XAML示例吗?我需要查看的唯一一列是标题。如果不可能以声明方式进行绑定,那么有人可以向我指出一个包含所有涉及因素的教程,包括层次结构数据,实体框架和WPF吗?谢谢。

Visual Studio 2017目标4.7.1 SQL Server 2017 实体框架6.2

更新:如果有帮助,请将此属性添加到项目中的lkpSource.cs中。

public SqlHierarchyId? OrgNode
{
    get
    {
        return SqlHierarchyId.Parse(HierarchyString);
    }
    set
    {
        OrgNode = value;
    }
}

0 个答案:

没有答案