ツリービューがあり、各ツリーノードをクリックすると、ツリーノードの詳細がツリービューの右側に表示されます。各ツリーノードには独自のビューモデルがあります。以下のコードは、詳細を表示する方法を示しています。
Value="設計時に指定可能" の場合 (私は 11 個あります)、すべて問題ありません。しかし、私は1つのツリーノードに異なる名前の子を持っています(以下のコードValue = "設計時に指定できません"を参照)。これは、データベース内のテーブルの2つの列から動的に取得され、4000以上の子をここにリストするためです。現実的ではありません。
名前 = "J" + テーブル名.ラベル + "." + テーブル名.サブラベル;
<ContentControl Name="DetailContentControl"
Content="{Binding ElementName=myTreeview, Path=SelectedItem, Mode=OneWay}">
<ContentControl.ContentTemplate>
<DataTemplate>
<ContentControl Name="CC" Content="{Binding }" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=Name}" Value="DXHeader">
<Setter TargetName="CC" Property="ContentTemplate" Value="{StaticResource DXHeaderDetailsTemplate }"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=Name}" Value="Don't know at designed time">
<Setter TargetName="CC" Property="ContentTemplate" Value="{StaticResource MyDetailsTemplate }"/>
</DataTrigger>
.....
</DataTemplate.Triggers>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
このようなことができれば、問題はありません。
ただし、DataTrigger.Value プロパティは Binding 式をサポートしていません。
前もって感謝します!