Binding 값을 기반으로 ContentTemplate을 적용하려고합니다. 문제는 작동하지 않는 것입니다.DataTrigger를 사용하여 DataTemplate 스타일을 적용하는 방법
TemplateA라는 기본 템플릿이 있는데, 그런 다음 데이터 바인딩 된 값 (TemplateA 또는 TemplateB 중 하나)에 따라 스타일을 표시하려고합니다.
기본 템플릿을 주석 처리하면 어느 템플릿도 선택되지 않습니다.
데이터 바인딩 된 값을 확인했는데 값은 ok입니다.
어디서 잘못 볼 수 있습니까?
여기
<CollectionViewSource x:Key="ListDataView" />
이것은 윈도우의 리소스 섹션 내에 위치하고이 ListDataView는 코드 내의 ObservableCollection에 부착되는 ListDataView에게이다. 도움이 될 수있는 WPF DataTemplateSelector를 사용
<DataTemplate x:Key="TemplateA">
<TextBlock Text="Template A" />
</DataTemplate>
<DataTemplate x:Key="TemplateB">
<TextBlock Text="Template B" />
</DataTemplate>
<ContentControl x:Name="LISTINGCONTROLA">
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Setter Property="ContentTemplate" Value="{StaticResource TemplateA}" />
<Style.Triggers>
<DataTrigger Binding="{Binding Source={StaticResource ListDataView}, Path=ListType}" Value="TEMPLATEA">
<Setter Property="ContentTemplate" Value="{StaticResource TemplateA}" />
</DataTrigger>
<DataTrigger Binding="{Binding Source={StaticResource ListDataView}, Path=ListType}" Value="TEMPLATEB">
<Setter Property="ContentTemplate" Value="{StaticResource TemplateB}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
템플릿 정의도 포함시킬 수 있습니까? –
2 개의 템플릿을 추가하십시오 – Ben
템플릿이 멋지게 보입니다 - ListDataView의 정의를 게시 할 수 있습니까? –