안녕하세요 저는 이미지 객체가 null 일 때 가시성을 숨겨야하는 트리거를 사용하여 가시성을 바인딩하려고합니다. treeviewitem의 자식 요소에 대한 가시성 바인딩
<Style TargetType="{x:Type local:DirectoryTreeView}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:DirectoryTreeView}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<TreeView Name="PART_DirectoryTree">
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding StartExpanded}"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Source, Source=Icon}">
<Setter Property="Visibility" Value="Hidden"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<Image Name="Icon" Width="16" Height="16" Source="{Binding Image}"/>
<TextBlock Text=" "></TextBlock>
<TextBlock Text="{Binding HeaderText}"></TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
지금까지 내가 트리거와 datatrigger, 나는 datatrigger의 세터에에서 targetName 속성을 사용하여 시도 처음으로 모두를 시도했다, 그러나 나는 컴파일러 오류가 발생했습니다. 어떻게 바인딩 요구 사항을 말해 줄 수>
<datatrigger binding={binding Image}>
<setter targetname="Icon" property="Visibility" value="Hidden"/>
</datatrigger>
누구
작동하지 == 제대로 수행 할? 당신이 그것을 접근하는 경우
<BitmapImage x:Key="ErrorImage" UriSource="Images/Error.png" />
<Image Source="{Binding Path=Image,
TargetNullValue={StaticResource ErrorImage}}" />
, 컨버터보다 사용하기 쉬울 것입니다 : 소스가 널 (null) 될 경우
'Image = null'일 때 TreeViewItem을 숨기시겠습니까? –
그냥 GUI가 엉망이라고 생각했기 때문에 그냥 이미지가 아니지만, 완전히 다른 무언가 였을 수도 있습니다. 지금은 변환기를 사용했는데 내 UI 문제가 해결되지 않은 것처럼 보입니다. 어쨌든이 질문은 아마도 취소 될 수 있습니다. – woutervs