とすれば:
- TargetTypeでDataTemplatesを割り当てることはできません
- StaticResource参照は、以前にのみ参照できます
TreeViewで次の状況をどのようにテンプレート化しますか?
class Resource {
public string Name {get;}
public IEnumerable<Property> Properties {get;}
}
class Property {
public string Name {get;}
public IEnumerable<Resource> Values {get;}
}
その構造は、次のようなツリーに適しています。
Resource 1
|- Property A
| - Resource 2
| - Resource 3
|- Property B
|- Resource 4
TargetType
のプロパティがあるため、これはWPFのテンプレートでは簡単ですHierarchicalDataTemplate
。Silverlightでは、次のようなことを行う必要があります。
<HierarchicalDataTemplate x:Key="ResourceTemplate"
ItemSource="{Binding Properties}"
ItemTemplate={StaticResource PropertyTemplate}" />
<HierarchicalDataTemplate x:Key="PropertyTemplate"
ItemSource="{Binding Values}"
ItemTemplate="{StaticResource ResourceTemplate}" />
XAMLドキュメントで定義されているため、ResourceTemplate
参照できないため、明らかに機能しません。PropertyTemplate
では、この鶏が先か卵が先かという問題をどのように解決しますか?