将XAML存储在数据库中?

时间:2014-01-08 09:18:46

标签: c# wpf xaml

因此,用户将在运行时创建对象,然后在“文本”框中键入所需的任何信息。然后,当他们点击保存Stackpanel时,他们都被包裹起来需要保存到数据库中,当他们再次加载该页面时,所有内容都会出现,他们可以编辑文本框内的数据。

有没有人知道互联网上的任何指南,因为我搜索过,很遗憾没有成功?

或者有人可以告诉我完成任务的方式吗?

4 个答案:

答案 0 :(得分:2)

首先,我不是试图回答这个问题,而只是提供一些相关的建议。通常,我们保存UI元素。这些UI元素由属性组成,它是我们保存的那些属性。我不是指所有的属性,而只是重要的属性。

例如,如果你有一个带有形状的Canvas,那么你需要保存形状类型,位置,大小和颜色。有了这些信息,您可以随时轻松地重新创建Canvas

在您的示例中,您需要保存StackPanel中的数据...听起来好像这些只是字符串,所以您需要做的就是存储字符串值,也可以保存它们的顺序这很重要。每次保存整个StackPanel将会浪费大量资源,因为它包含许多与您的要求完全无关的属性值。

答案 1 :(得分:0)

请点击链接保存布局。但是对于在数据库中的插入,我建议你只保存文件的地址,而不是XAML内容。

如果您只想保存值,则无需保存对象,只需保存布局即可。

https://web.archive.org/web/20130905043235/https://channel9.msdn.com/Forums/TechOff/WPF-Persisting-window-position-size-theme-and-layout-Saving-to-xml-and-application-settings

答案 2 :(得分:0)

如果我理解正确,您希望将xaml内容存储到数据库中,以便在需要类似UI时使用后者。

您可以将XAML文件作为简单文件加载并读取内容并将其保存到数据库中。在mysql的情况下,您可以使用blob字段来存储xaml数据。现在,只要您想使用此内容绘制设计,您就可以从数据库中读取它。

答案 3 :(得分:0)

你确定你真的想保存Xaml吗?

听起来你应该有一个数据模型,应该保存到数据库中。然后,您可以使用数据绑定来根据需要创建尽可能多的TextBox es或其他控件。

如果您使用ItemsControl代替StackPanel,则可以显示每个项目的列表,并为每个项目添加文本框。

这是一个很好的教程:http://www.wpf-tutorial.com/list-controls/itemscontrol/