0

我正在制作一个用户界面,用户可以在其中添加和存储指向他们最喜欢的 Youtube 视频的链接。与浏览器中的收藏夹非常相似,但仅适用于 Youtube 视频。

我希望将链接显示在树视图中,以便可以将它们分类到类别和子文件夹等中。有点像这样:

Videos
|---Music Videos
      |---Music video 01
      |---Music video 02
      |---Music video 03
|---TV Shows
      |---TV show 01
      |---TV show 01

目前我最苦恼的是,一旦用户界面关闭,用户如何存储这些数据。我一直在研究 xml 绑定,但我似乎无法创建一个像样的 xml 模式,它似乎可以与树视图一起正常工作。

另外,我将如何将 URL 与视频名称一起存储,但树视图只显示名称?

对于解决此问题的最佳方法的任何指示,我将不胜感激。有没有更好的办法?这一切都非常令人困惑。

非常感谢。

4

1 回答 1

1

好的数据架构是一个重要的问题,我只能提供一些我的想法,但不能保证它们都是一个好主意。

首先不建议直接使用 XML 数据,如果您尝试做更复杂的事情,它会变得非常不方便。

您可以将数据序列化为 XML,但您应该知道它的局限性和副作用,这里有一些问题可以在 SO 上找到,它们试图比较各种序列化方法,您可能想寻找其他格式可能更合适。XML 的两个方面非常明显,例如:

  • 由于标签和基于文本的数据导致巨大的文件大小开销
  • 与二进制序列化不同,数据或多或少具有人类可读性和透明性

在任何情况下,我都会使用数据库或普通对象模型并将其序列化/反序列化以进行存储。

如果你想允许子类别,你可能想使用复合模式,那么你可以有一个对象Video,并且Category都实现接口IVideoComposite,例如,其中Category有一个Children类型的属性ObservableCollection<IVideoComposite>

然后,您可以使用隐式类型的数据模板 (a HierarchicalDataTemplatefor Category) 在TreeView. (对于Category你们中的一个人,然后将绑定ItemsSourceChildren

于 2011-09-07T16:13:36.050 回答