gpt4 book ai didi

wpf - 如何绑定(bind)到祖先数据上下文中的属性?

转载 作者:行者123 更新时间:2023-12-04 19:48:53 25 4
gpt4 key购买 nike

我有一个如下所示定义的 ItemsControl。基本上,我有一个编辑器列表 (EditorList),我想要每个编辑器的超链接。但是,我的打开命令(OpenEditorCommand)属性与编辑器列表处于同一级别。当上下文设置为列表中的项目时,我如何引用该属性。我试过使用 RelativeSource 方法,但它太复杂了,我无法理解。我走在正确的轨道上吗?

<ItemsControl ItemsSource="{Binding EditorList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Margin="2,6" HorizontalAlignment="Center">
<Hyperlink Command="{Binding RelativeSource={RelativeSource AncestorType=ItemsControl, AncestorLevel=2, Mode=FindAncestor}, Path=OpenEditorCommand}" CommandParameter="{Binding Name}">
<StackPanel>
<Image Source="{Binding Image}" Width=32/>
<TextBlock Text="{Binding Path=Name}"/>
</StackPanel>
</Hyperlink>
</TextBlock>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

最佳答案

只有在元素树中可能存在多个搜索类型的祖先的情况下,您才需要设置 AncestorLevel。默认值为 1,表示找到最近的。

但是您需要在 Path 中指定要绑定(bind)到 ItemsControl< 的 DataContext 上的 OpenEditorCommand/:

Command="{Binding Path=DataContext.OpenEditorCommand, RelativeSource={RelativeSource AncestorType=ItemsControl, Mode=FindAncestor}}"

关于wpf - 如何绑定(bind)到祖先数据上下文中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10439462/

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