gpt4 book ai didi

c# - 如何绑定(bind)到 DataTemplate 中的兄弟元素?

转载 作者:太空宇宙 更新时间:2023-11-03 23:02:21 26 4
gpt4 key购买 nike

我有以下 TreeView:

<TreeView Grid.Column="2" x:Name="itemTreeView" Margin="0" SelectedItemChanged="SelectionChanged">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:MarketGroup}">
<HierarchicalDataTemplate.ItemsSource>
<Binding Path="children"/>
</HierarchicalDataTemplate.ItemsSource>
<TextBlock Text="{Binding marketGroupName}" ToolTip="{Binding description}"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type local:ItemType}">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding itemImage}" Height="{Binding Sibling.ActualHeight}"/>
<TextBlock Text="{Binding typeName}" ToolTip="{Binding description}"/>
</StackPanel>
</DataTemplate>
</TreeView.Resources>
</TreeView>

所以我想要做的是让位于 DataTemplate 中的图像将其高度绑定(bind)到它旁边的 TextBlock 的实际高度,以便它们大小相同。到目前为止,我所能找到的所有引用 sibling 的方法都依赖于定义 x:Name 并按名称引用它,但据我所知,我无法在 DataTemplate 中命名元素,因为它只是一个模板.或者,如果有一种方法可以将父级 StackPanel 绑定(bind)到 TextBlock,那么将图像大小绑定(bind)到父级也应该可行。

最佳答案

x:Name 在 TextBlock 中,ElementName 在 Binding 中。

<Image 
Source="{Binding itemImage}"
Height="{Binding ActualHeight, ElementName=SiblingTextBlock}"
/>
<TextBlock
x:Name="SiblingTextBlock"
Text="{Binding typeName}"
ToolTip="{Binding description}"
/>

谁告诉您在 DataTemplate 中不起作用?您自然无法从模板外部 引用该名称,因为实例化的模板实例可能有零个或多个。但在模板中它很好。

关于c# - 如何绑定(bind)到 DataTemplate 中的兄弟元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42658056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com