WPF에서 telerik TreeView를 사용하고 있으며 노드를 표시하기 위해 HierarchicalDataTemplate을 사용하고 있습니다. 노드는 일치 항목을 나타냅니다.이 항목은 단지 왼쪽, 오른쪽 만, 같거나 같지 않음 (트리 기반 비교)입니다. 나는 현재 DataTemplateSelector를 사용하고부모 컨트롤의 크기를 기준으로 데이터 템플릿의 너비를 설정하십시오.
모두 유사하게하는, 네 개의 템플릿 중 하나를 선택합니다 다음
<HierarchicalDataTemplate x:Key="EqualTreeItemTemplate" ItemsSource="{Binding}">
<Grid Name="rowGrid" HorizontalAlignment="Stretch" Height="Auto" d:DataContext="{d:DesignInstance Carbon:ICarbonComparisonPair }">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="16" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Path Data="F1M574.042,314.611L533.8,344.398 522.251,328.798 515.235,333.988 526.786,349.593 526.782,349.596 531.978,356.603 579.235,321.622 574.042,314.611z" Stretch="Uniform" Fill="#FF000000" Width="16" Height="16" VerticalAlignment="Center" Margin="0,0,0,0" />
<TextBlock Grid.Column="1" Text="{Binding ObjectName}" Style="{StaticResource ObjectNameStyle}" Margin="4,0,0,0" />
<TextBlock Grid.Column="2" Text="{Binding ObjectName}" Style="{StaticResource ObjectNameStyle}" Margin="4,0,0,0" />
</Grid>
</HierarchicalDataTemplate>
나는이 항목의 내용 영역에 따라 다른 폭이라고하는 문제를 항목이 나타나는 트리의 레벨입니다. 즉, 내가 가지고있는 열이 정렬되지 않음을 의미합니다. 오른쪽 열의 텍스트가 확장되는 트리의 각 수준에 대해 오른쪽으로 조금씩 이동합니다.
오른쪽 그리드 열의 폭을 그리드의 자연 영역의 50 %가 아닌 전체적으로 트리 컨트롤 크기의 50 %로 지정하고 싶습니다. RelativeSource 바인딩을 사용하여이 작업을 수행 할 수 있다고 생각했지만 실제로 작동하지 않는 것처럼 보입니다. XAML에서이를 수행 할 수있는 방법이 있습니까? 아니면 코드 숨김에 의존해야합니까?
나는 그 하나를 보았지만, 나는 길을 찾고 있었다. WPF 지식을 확장하려고하기 때문에 부분적으로 TreeView에서 수행하십시오. 하지만 패배를 인정하고 TreeListView와 함께 할 수 있습니다. 감사. –