DataTriggerに基づいて変更するContentTemplateを設定しようとしています。 - しかし、私が達成しようとしているものをトリガーされたコンテンツテンプレート
<ItemsControl ItemsSource="{Binding Path=ExtendedFieldCollection}" ItemTemplate="{StaticResource RequiredFieldsTemplate}" />
<!--Where-->
<DataTemplate x:Key="RequiredFieldsTemplate">
<ContentPresenter>
<ContentPresenter.Style>
<Style TargetType="ContentPresenter">
<Setter Property="ContentTemplate" Value="{x:Null}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsRequired}" Value="True">
<Setter Property="ContentTemplate" Value="{StaticResource MyFieldDisplayTemplate}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ContentPresenter.Style>
</ContentPresenter>
</DataTemplate>
は、単に罰金
<DataTemplate x:Key="RequiredFieldsTemplate">
<ContentPresenter ContentTemplate="{StaticResource MyFieldDisplayTemplate}" />
作品を行く:ページをレンダリングしようとすると構文上、これは動作するはずような気がしますが、それはスタックオーバーフローにつながりますフィールドのリストにバインドするだけで、必要なフィールドのみが表示されます。 Visibility = collapsedを使用するだけでは、MyFieldDisplayTemplate
のすべてのカスタムコントロールをインスタンス化する際に大きなオーバーヘッドが発生します。私の目標は、必須ではないフィールドにItemsControl内の完全に異なる(空の)コントロールテンプレートを持たせることです。
このトリガーを設定する方法についてのアイデアはありますか?