質問

ツリービューを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>

(データは、親のデータコンテキストのタイプXelementのプロパティです)

私はどこかで間違いを犯しましたか、それともゼレメントの子要素を得るためだけにivalueConverterを実装する必要がありますか?

役に立ちましたか?

解決

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

このシナリオを機能させることに本当に屈している場合は、2つのオプションがあります。
1. ivalueConverterを使用して、「要素」メソッドの内容を抽出します。
2.適切な階層で管理されたクラスでXDocumentを包みます。

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

心から、
- ジャスティンエンジェル

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top