gpt4 book ai didi

.net - 如何在嵌套在 HierarchicalDataTemplate 中的 DataTemplate 中设置 RelativeSource?

转载 作者:行者123 更新时间:2023-12-04 18:53:28 32 4
gpt4 key购买 nike

我有以下 XAML,它完成了它应该做的所有事情,除了 FontSize 上的 MultiBinding 在检索用户时失败(当我在转换器中设置断点时,我看到了 DependencyProperty.UnsetData)。如您所见,用户是 IEnumerable<UserData>这是 HierarchicalDataTemplate 的 DataContext 的一部分。
怎么引用??

<TreeView Name="AllGroups" ItemsSource="{Binding}" >
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type PrivateMessengerUI:GroupContainer}"
ItemsSource="{Binding Users}"
>
<Label Content="{Binding GroupName}"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type PrivateMessenger:UserData}">
<TextBlock Text="{Binding Username}"
ToolTip="{StaticResource UserDataGroupBox}"
Name="GroupedUser"
MouseDown="GroupedUser_MouseDown">
<TextBlock.FontSize>
<MultiBinding Converter="{StaticResource LargeWhenIAmSelected}">
<Binding ElementName="Root" Path="SelectedUser"/>
<Binding RelativeSource="???"
Path="DataContext.Users"/>
</MultiBinding>
</TextBlock.FontSize>
</TextBlock>
</DataTemplate>
</TreeView.Resources>
</TreeView>

最佳答案

正确答案是:

<Binding RelativeSource="{RelativeSource FindAncestor,
AncestorType={x:Type TreeViewItem},
AncestorLevel=2}"
Path="DataContext.Users"/>

祖先级别至关重要且具有欺骗性:当您省略它时,假定级别为 1,并且它实际上指向 DataTemplate 的容器(它也是无子树的 TreeViewItem!),而不是 HierarchicalDataTemplate 的容器。

关于.net - 如何在嵌套在 HierarchicalDataTemplate 中的 DataTemplate 中设置 RelativeSource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2574392/

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