2011-01-13 3 views
1

SQL Server XML 또는 oracle XMLtype 필드에 XSD를 데이터로 보유했습니다. XDocument로 데이터베이스에서 XSD를 검색합니다. 이 XDocument를 WPF 트리 뷰에 표시하려고합니다. xmldataprovider와 hierarchicalDataTemplate을 사용하여 Treeview에 Xdocument를 직접 바인딩하면 비교적 간단합니다.MVVM ViewModel을 사용하여 XDocument를 WPF 트리 뷰로 표시

그러나 내 응용 프로그램은 mvvm 패턴을 사용하고 있으며 ViewModel 레이어에 xdocument를 표현하고 싶습니다. 그러면 TreeView가 ViewModels에 WPF 트리 뷰를 바인딩하는 조쉬 스미스 기사와 비슷한 방식으로 바인딩됩니다. http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx

내 목표는 XSD (XDocument)의 X 노드를 선택하는 것입니다.

XNode를 선택할 수 있도록 ViewModel에서 XSD의 Xdocument를 어떻게 표현할 수 있는지에 대한 제안 사항이 있습니까?

답변

0

읽기 전용 작업을 수행하는 경우 간단하게 유지하고 아무런 이점도없는 새로운 클래스를 도입하지 않는 것이 좋습니다. 구조 편집을 지원하고 싶다면보기 모델을 추가해야한다는 의견을 남겨주세요. 문서를 편집 할 수 있더라도 필요에 따라 문서와 노드를 직접 바인딩 할 수 있습니다.

고급 지원 (예 : INotifyPropertyChanged)이 필요하면 XObject을 기반으로하는 원본 API와 같은 클래스 계층 구조를 만드는 것이 좋습니다. UI에서 직접 지원할 계획했던 속성 만 추가합니다. 그런 다음 XDocumentViewModel 계층 구조를 실제 XDocument으로 변환 할 수있는 별도의 모델 클래스를 생성합니다.

... XNode를 선택할 수 있도록 ViewModel에서 XSD의 Xdocument를 나타내는 방법.

선택이란 무엇을 의미합니까?

UI에서 의미하는 경우 XAML에서 처리됩니다.

뷰 모델을 쿼리하는 방법에 대해 설명하는 경우 기본 문서에 대해 기존 LINQ XML 쿼리 API를 사용해 볼 수 있습니다. XObjects를 뷰 모델 객체에 다시 매핑하는 내부 사전을 유지하고 결과를 얻으면 사전에 각 결과를 반환 한 다음 반환하십시오.

관련 문제