2

ツリービューをXDocumentに再帰的にバインドし、各XML要素をツリービューのノードにマッピングするにはどうすればよいですか?

以下のコードは私の観点からは機能するはずです(また、直接バインディングに関して私が見つけたごくわずかな投稿によると)、しかしそれは機能しません:

<sdk:TreeView ItemsSource="{Binding Path=Elements}" DataContext="{Binding Path=Data}">
  <sdk:TreeView.ItemTemplate>
   <data:HierarchicalDataTemplate ItemsSource="{Binding Path=Elements}">
    <StackPanel Orientation="Vertical">
     <TextBlock Text="{Binding Name}"/>
    </StackPanel>
   </data:HierarchicalDataTemplate>
  </sdk:TreeView.ItemTemplate>
</sdk:Treeview>

(データは、親のDataContextのタイプXElementのプロパティです)

どこかで間違いを犯したのでしょうか、それともXElementの子要素を取得するためだけにIValueConverterを実装する必要があるのでしょうか。

4

1 に答える 1

1

「Elements」メンバーはプロパティではなく、メソッド呼び出しです。
Silverlightのメソッド呼び出しにバインドすることはできません。

このシナリオを機能させることに本当に熱心な場合は、2つのオプションがあります
。1。IValueConverterを使用して、「Elements」メソッドの内容を抽出します。
2.XDocumentを適切な階層の管理対象クラスにラップします。

個人的には、オプション#1が最速のように見えますが、長期的には、適切なドメインモデルの構築にさらに10分を費やして、維持とサポートに多くの時間を費やすと思います。

よろしくお願いいたします。-
ジャスティンエンジェル

于 2010-04-18T16:37:13.867 に答える