2011-01-13 34 views
1

我将XSD作为数据保存在SQL Server XML或Oracle XMLtype字段中。我作为XDocument从数据库中检索XSD。我想在WPF树视图中显示此XDocument。如果我使用xmldataprovider和hierarchicalDataTemplate将Xdocument直接绑定到树视图,这是相对直接的。使用MVVM ViewModel显示XDocument作为WPF树视图

但是,我的应用程序使用mvvm模式,我想在ViewModel图层中表示xdocument,然后将树视图绑定到与Josh Smith有关将WPF树视图绑定到ViewModels的文章的方式相似。 http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx

我的目标是选择一个XSD的XNode(XDocument)。

任何关于如何在ViewModel中表示XSD文档的建议,以便我可以选择一个XNode?

回答

0

如果你正在进行只读操作,我建议你保持简单,不要引入不提供任何好处的新类。如果您想要支持编辑结构,请留下您应该添加视图模型的评论。即使您希望能够编辑文档,您仍可以直接绑定到文档和节点,具体取决于您的需要。

如果您需要更高级的支持(如INotifyPropertyChanged),我建议您根据XObject创建类似原始API的类的层次结构。我只会添加我计划在UI中直接支持的属性。然后,我会创建一个单独的模型类,它可以从XDocumentViewModel层次转换为真实的XDocument,然后返回。

...如何在ViewModel中表示XSD的Xdocument,以便我可以选择一个XNode。

你是什么意思?

如果您的意思是在用户界面中,那么在XAML中就已经考虑到了这一点。

如果您正在讨论查询视图模型,那么您可以尝试对底层文档使用现有的LINQ XML查询API。保留一个内部字典将XObject映射回您的视图模型对象,当您得到结果时,只需在返回它之前查看字典中的每个结果即可。

相关问题