【发布时间】:2012-04-24 08:56:53
【问题描述】:
我们有一个包含 xml 文件的数据库的应用程序。它具有客户端服务器架构。所以这里服务器将使用数据集从 xml 文件中读取数据并将其存储在 xml 模式中。然后服务器将数据序列化并将其传递给 UI(客户端)。因此 UI 数据使用左侧的 Treeview 显示,右上方的 listview 和右下方的 propertygrid 显示。
Ui 中的数据分为类和对象。所以现在我们的数据库中有一个 xml 文件 machineclass.xml 和 machineobjects.xml。 machineclass.xml 包含各种类,如电子类、计算机类、农业工具类等,而 machineobjects.xml 包含电视、pentium4 计算机、拖拉机等。所以现在在 UI 中,如果我从树视图中选择电子节点,它将列出电视、收音机、电话等通过使用 Listview,它在右上角包含的任何对象,如果我选择对象“TV”,则电视的相关属性显示在右下角的 propertygrid 中。
所以现在我们有一个任务,如果有人想从父 machineclass.xml 和 machineobjects.xml 中以 xml 文件(.xml)的形式从 UI 中取回选定的对象
例如,如果有人从 UI 列表视图中选择了 TV,并希望以 .xml 文件(tv.xml)的形式进行备份,以便在一段时间后可以导入数据,我们可以在这里实现什么逻辑?我可以序列化 listview 和 propertygrid,还是有任何选项可以做到这一点? 这是我在 UI 中用于复制粘贴操作的一些代码
【问题讨论】:
-
但是在对 UI 中的所有对象进行反序列化后,我该如何做到这一点,如果选择了对象,如何进行序列化?
-
查看我的答案,而不是填充控件,例如 listview.Add(item) - 你应该有一个业务对象,例如一个 List
然后在你的 GUI 中唯一的代码是 listview.DataSource =业务对象.ListOfItems。在 businessObject 中,您将有一个名为 saveSerializedListOfItems() 的方法
标签: c# visual-studio-2010 listview treeview propertygrid