2016-04-18 66 views
0

与Visual Studio或任何其他IDE一样,必须保存并在选项卡页面中动态创建的控件才是任务。我已经尝试了将mycontrolsclass的动态创建列表中的控件转换为json的方法,这些json将被保存到数据库中并被取回。当整个mycontrolsclass被序列化为json时,发生stackoverflow错误。所以想到了将xaml内容添加到数据库中。几个教程可以帮助获取wpf窗口物理文件的xaml内容,但不知道从具有动态创建控件的窗口中获取xaml内容。WPF获取在运行时创建的控件的xaml

尝试通过LogicalTreeHelper类循环,但我无法得到确切的xaml。我的方法是否正确,或者如何获得xaml动态创建的控件?

+1

[Here](http://stackoverflow.com/q/15003183/1997232)是类似的东西。你也可以单独搜索“xaml加载运行时”和“xaml保存运行时”(应该引导你到相关的问题)。 – Sinatr

回答

2

我想XamlWriter.Save()是你在找什么。

+0

伟大的帮助,但XAML序列化错误发生如下,我无法克服。 PresentationFramework.dll中发生类型'System.InvalidOperationException'的未处理异常 其他信息:无法序列化非公共类型'FormsSuite.CustomControl.CustomTabItem'。 –

+1

@ArulManivannan只要使'FormsSuite.CustomControl.CustomTabItem'公开,这应该工作。 –

+0

工作就像一个魅力,犹豫不决,在先前的评论中把这个错误。现在您的评论也帮助我节省了一些时间。谢谢。 –