2011-01-13 9 views
1

SQL Server XMLまたはoracle XMLtypeフィールドにXSDをデータとして保持しています。私はXDocumentとしてデータベースからXSDを取得します。私はこのXDocumentをWPFツリービューに表示したいと思います。これは、xmldataproviderとhierarchicalDataTemplateを使用してツリービューにXdocumentを直接バインドすると比較的簡単です。MVVM ViewModelを使用してXDドキュメントをWPFツリービューとして表示

しかし、私のアプリケーションはmvvmパターンを使用していますので、ViewModelレイヤーでxdocumentを表現したいと思います。これは、ViewModelにWPFツリービューをバインドするJosh Smithの記事と同様の方法でバインドされます。 http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx

私の目標は、XSD(XDocument)のXノードを選択することです。

私はXNodeを選択できるようにViewModelのXSDのXドキュメントをどのように表現することができるかに関する提案はありますか?

答えて

0

読み取り専用の操作を行っている場合は、単純なままにしておき、新しいクラスを導入しないことをお勧めします。構造の編集をサポートしたい場合は、ビューモデルを追加する必要があるというコメントを残してください。ドキュメントを編集できるようにしたい場合でも、必要に応じてドキュメントとノードに直接バインドすることができます。

さらに高度なサポート(INotifyPropertyChangedなど)が必要な場合は、XObjectに基づく元のAPIのようなクラスの階層を作成することをおすすめします。 UIで直接サポートする予定のプロパティのみを追加します。その後、XDocumentViewModelの階層を実際のXDocumentに変換して戻す別のモデルクラスを作成します。

...私はXノードを選択できるようにViewModelのXSDのXドキュメントをどのように表現するのか?

選択するとどういう意味ですか?

UIであれば、それはXAMLで処理されます。

ビューモデルのクエリについては、基になるドキュメントに対して既存のLINQ XMLクエリAPIを使用できます。 XObjectsをビューモデルオブジェクトにマップする内部辞書を保持しておき、結果が得られたら、辞書に戻す前にそれぞれの結果を検索するだけです。

関連する問題