내 응용 프로그램은 모든 유형이 동일한 계층 적 주문 항목이있는 TreeView를 왼쪽에 표시합니다. 모든 항목에는 두 개의 값 중 하나를 가질 수있는 종속성 속성이 있습니다. 이 값은 enum입니다. 이 값에 따라 왼쪽에 두 개의 UserControl 중 하나를 표시하려고합니다. 내 생각은 두 컨트롤을 삽입하고 불투명도를 0으로 설정하는 것이 었습니다. 그런 다음 열거 형 값에 따라 불투명도를 트리거하는 DataTrigger가있는 스타일을 삽입하려고합니다. 그러나 다른 컨트롤의 DataTrigger에서 한 컨트롤의 속성에 액세스 할 수 없습니다. 트리거가 열거 형 값을 인식하지 못하는 것 같습니다.TreeViewItem의 속성에 따라 WPF UserControl을 변경하십시오.
열거 형 :
public enum IdentityType
{
Person,
OrganisationUnit
}
XAML은 :
<TreeView Grid.Column="0" Grid.Row="1" Background="AntiqueWhite" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding Identities}" x:Name="OiTree">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Childs}">
<TextBlock Text="{Binding}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
<Controls:UcPerson Grid.Column="1" Grid.Row="1" Opacity="0">
<Controls:UcPerson.Style>
<Style TargetType="Controls:UcPerson">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Type, ElementName=OiTree.SelectedItem}" Value="Person">
<Setter Property="Opacity" Value="1"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Controls:UcPerson.Style>
</Controls:UcPerson>
<Controls:UcOrgUnit Grid.Column="1" Grid.Row="1" Opacity="0">
<Controls:UcOrgUnit.Style>
<Style TargetType="Controls:UcOrgUnit">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Type, ElementName=OiTree.SelectedItem}" Value="OrganisationUnit">
<Setter Property="Opacity" Value="1"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Controls:UcOrgUnit.Style>
</Controls:UcOrgUnit>
빠른 답변 주셔서 감사합니다. 나는 당신이 옳다고 생각하고 DataTemplateSelector가 내가 필요한 바로 그 것이다. 하지만 지금 당장 얻지 못하는 것은 GridView에서 DataTemplateSelector를 설정하거나 TreeView에서 selectedItem에 대한 Refference를 설정하는 것입니다. 나는 # 주제에 대한 다음 자습서를 읽었습니다. [link] (http://www.codeproject.com/Articles/418250/WPF-Based-Dynamic-DataTemplateSelector) [link] (http://tech.pro/tutorial/807/wpf-tutorial-how-to-use-a-datatemplateselector) –