3
我試圖設置一個基於DataTrigger更改的ContentTemplate。 Syntatically,我覺得這應該工作,但它會導致堆棧溢出試圖渲染頁面時:觸發的內容模板
<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中的非必填字段具有完全不同的(空的)控件模板。
關於如何設置此觸發器的任何想法?