我在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中實現這一點,還是我需要訴諸代碼隱藏?
我確實看到了那個,但我正在尋找一種方法在TreeView中專門做 - 部分原因是我想擴展我的WPF知識。但我可能會承認失敗,並與TreeListView。謝謝。 –