gpt4 book ai didi

.net - wpf:查找祖先的祖先

转载 作者:行者123 更新时间:2023-12-02 17:50:57 25 4
gpt4 key购买 nike

我有一个绑定(bind)到 ViewModel 的 UserControl。 UserControl 上绑定(bind)到一个项目列表(类对象)。因此,当我想将各种元素绑定(bind)到 DataGrid 的 RowDetails 模板上的属性时,我使用:

"{Binding RelativeSource={RelativeSource FindAncestor, 
AncestorType={x:Type UserControl}},
Path=DataContext.SomeProperty}"

这很好用。现在我想将 RowDetails 内容分解到 UserControl 中,我可以在其他带有 DataGrid 的顶级 UserControl 中使用它们。那么我如何找到一个 UserControl,它是编写此绑定(bind)语句的 UserControl 的祖先?

我无法在 x:Type 声明中指定顶级 UserControl 的名称,因为它每次都不同。

最佳答案

您可以使用 AncestorLevel 来做到这一点,但是我严重怀疑这是正确的绑定(bind)方式。

您将拥有一个根据其在逻辑树中的位置工作的 UserControl。

如果您在这两个控件中间插入一些其他用户控件,它将停止工作。

正确的绑定(bind)方法是使用提供给控件的 Datacontext。

如果缺少某些数据,则调整该数据上下文以获取该数据,即使这意味着从其父级的数据上下文中读取该数据。

关于.net - wpf:查找祖先的祖先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6402902/

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