首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在屏幕上存储各种ui项目数据的最佳方法

在屏幕上存储各种ui项目数据的最佳方法
EN

Stack Overflow用户
提问于 2013-03-14 12:00:32
回答 3查看 100关注 0票数 1

我正在开发一个图表工具,在这个工具中,我会将控件拖放到图表表面,就像VS、visio或paint一样。

每个放置在表面上的控件/元素,在右键单击时将显示一个上下文菜单"properties“。"properties“对话框将显示与每个元素/控件相关的一组数据。

我的问题是如何最好地存储/加载这个附加到表面上的每个元素/控件的非UI数据。

例如,我在设计模式中创建元素LED1、断路器1、连接器1。

他们每个人都有不同的数据集。

存储逻辑将如下所示

代码语言:javascript
复制
   for all elements on diagram
    1. input element id,element type.
    2. store data for that element ID.  

当我创建的图表作为应用程序运行时,必须由加载程序从存储中为每个元素检索适当的数据。

加载程序逻辑可能是这样的

用于图表上的所有元素

  1. 检测元素id和元素类型
  2. 获取上述id的数据。

我认为xml是一种资源。但我的经理似乎并不热心。

我想知道最有经验/最熟练的wpf开发人员将如何做到这一点。

EN

回答 3

Stack Overflow用户

发布于 2013-03-14 12:20:33

我可能不完全理解你的问题。但是我们以自定义二进制格式存储业务数据,这基本上只是业务数据树的属性值转储到数据库中。根据您的需求,您需要确保处理文件格式的更改(不同版本),并正确处理交叉引用。每个对象都是单独转储的,第二次遍历确保交叉引用被解析。

此外,我还会尽可能轻松地:

每种类型的图表元素的模型类,它本身只存储与业务相关的数据(我会将图表应用程序中的位置和大小作为业务数据考虑)。这些模型可以被系列化。对这些模型进行操作的管理类,包括撤销重做、查看模型创建等,以及包装这些模型并存储命令、ui信息(被选中、扩展等)的视图模型。

对于视图,我强烈建议创建一个带有虚拟化画布的自定义ItemsControl。

票数 1
EN

Stack Overflow用户

发布于 2013-03-14 12:19:02

我认为这取决于规模。如果有数千个对象,需要保存/加载这些对象,那么最好设置一个数据库,在那里存储数据。如果它只是几十个对象-- XmlSerialization是最明显的选择。

票数 0
EN

Stack Overflow用户

发布于 2013-03-14 12:21:07

我不认为XML是一种糟糕的方式。事实上,这就是Office子元素的存储方式。看看微软的XPS封装格式和API。(MSDN)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15408688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档