将 WCF DomainService 数据绑定到 Silverlight 中的 TreeView 的最佳方法?

发布于 2024-10-19 21:01:06 字数 724 浏览 6 评论 0原文

我有一个与此类似的数据库结构:

项目

  • ID
  • 名称
  • ParentItemFK(任务和注释可以将任何项目作为父项;类别只能将其他类别作为父项)
  • CategoryFK
  • TaskFK
  • NoteFK

类别

  • ID
  • 描述(可选)

任务

  • ID
  • FullDescription
  • IsComplete

Notes

  • ID
  • FullText

项目将显示在 TreeView 中。一项可以是类别、任务或注释(因此仅填写一个 FK 列)。

我想在 TreeView 中显示所有项目。我正在使用带有 WCF 的 DomainService 从后端获取数据,以便在 Silverlight 中显示。

我可以以编程方式构建要在 TreeView 中显示的对象(即创建一个对象,例如 ItemNode,每个子项都有子 ItemNode)。这可能会正常工作,但是当刷新 DomainService 的数据时,我认为必须重建整个 ItemNode 列表(这可能经常发生)。

我在 DomainService 下使用实体框架,如果这很重要的话。

有更好的方法吗?

谢谢!

I've got a database structure similar to this:

Items

  • ID
  • Name
  • ParentItemFK (tasks & notes can have any item as a parent; categories can only have other categories as a parent)
  • CategoryFK
  • TaskFK
  • NoteFK

Categories

  • ID
  • Description (optional)

Tasks

  • ID
  • FullDescription
  • IsComplete

Notes

  • ID
  • FullText

The items are to be displayed in a TreeView. An item can be either a category, task, or note (so one and only one of the FK columns are filled in).

I'd like to display all items in a TreeView. I am using a DomainService with WCF to get the data from the back-end, for display in Silverlight.

I could programmatically build objects to be displayed in the TreeView (i.e. make an object such as ItemNode, with child ItemNodes for each sub-item). This would probably work alright, but when the data that the DomainService has is refreshed, I think the whole list of ItemNodes would have to be rebuilt (which could happen often).

I'm using entity framework underneath the DomainService, if that matters.

Is there a better way to do this??

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

明明#如月 2024-10-26 21:01:06

我做了类似的事情,并创建了一个代表我的层次结构的自定义对象。然后我创建了一个帮助程序类来递归自定义对象并创建树节点以绑定到 TreeView。

我还使用 Hierarchy SQL 数据类型来表示数据库中的层次结构。

由于您使用实体框架,我认为您最好的选择是创建一些 TreeNode 类,该类将接收您的实体,然后递归它们并吐出 TreeNodes 的层次结构,然后您可以将其绑定到 TreeView。

此外,您还需要将该实体的唯一标识符放入 TreeNode.Value 中,以便当用户与节点交互时,您将能够轻松修改表示 TreeNode 的实体。因此,创建另一个类,它将递归遍历您的实体,并根据其标识符获取对该实体的引用。

I did something similar to this and I created a custom object which represented my hierarchy. Then I created a helper class to recurse through the custom object and create Tree nodes to bind to the TreeView.

I also used the Hierarchy SQL Datatype to represent my Hierarchy in the database.

Since your using Entity framework, I'm thinking your best bet is to just create some TreeNode class which will take in your entities and then recurse through them and spit back out a Hierarchy of TreeNodes which you can then bind to the TreeView.

Also, you will want to put the unique identifier for that entity in the TreeNode.Value so that when a user interacts with a node, you will be able to easily modify the entity which represents the TreeNode. So, create another class which will recurse through your entities and get a reference to that entity based on its identifier.

hth

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文