我将XSD作为SQL Server XML或oracle XMLtype字段中的数据保存。我从数据库中检索XSD作为XDocument。我想在WPF树视图中显示此XDocument。如果我使用xmldataprovider和hierarchicalDataTemplate将Xdocument直接绑定到树视图,这是相对简单的。
但是,我的应用程序正在使用mvvm模式,我希望在ViewModel层中表示xdocument,然后树视图以与Josh Smith关于将WPF树视图绑定到ViewModel的文章类似的方式绑定到该层。 http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx
我的目标是选择XSD的XNode(XDocument)。
有关如何在ViewModel中表示XSD的Xdocument以便我可以选择XNode的任何建议吗?
答案 0 :(得分:0)
如果您正在进行只读操作,我建议您保持简单,不要引入没有任何好处的新类。如果您想支持编辑结构,请留下您应添加视图模型的注释。即使您希望能够编辑文档,您仍可以直接绑定到文档和节点,具体取决于您的需求。
如果您需要更高级的支持(例如INotifyPropertyChanged
),我建议您根据XObject
创建类似原始API的类层次结构。我只会在UI中添加我计划直接支持的属性。然后我会创建一个单独的模型类,可以从XDocumentViewModel
层次结构转换为真实的XDocument
,然后返回。
...如何[表示]在ViewModel中表示XSD的Xdocument,以便我可以选择一个XNode。
select是什么意思?
如果你的意思是在UI中,那么在XAML中就可以了。
如果您正在讨论查询视图模型,那么您可以尝试对基础文档使用现有的LINQ XML查询API。保留一个内部字典,将XObjects映射回视图模型对象,当您获得结果时,只需在返回字典之前查找每个结果。