问题标签 [findancestor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
23 浏览

wpf - Styles and DataTemplates: FindAncestor-like search,包括 Self

我有一个包含表单的绑定表达式的样式

但是,有时运行此样式的 DataContext 实际上是 MyType 类型。在这种情况下, FindAncestor 没有做我想做的事:它从父级开始搜索。

在继续元素层次结构之前,是否有任何 {Binding ...} 咒语检查当前数据上下文的类型?我有其他特定于我的项目的解决方案,但 FindAncestor 是如此接近......

0 投票
2 回答
362 浏览

c# - WPF FindAncestor 性能问题

在 Binding 中使用FindAncestor有一个关于性能问题的问题。

我想在子用户控件或 ListBoxItem/ListViewItem 中使用 Base 的 DataContext。

这个问题有什么替代方案?

查找祖先

0 投票
1 回答
90 浏览

xml - XSL:当前节点和另一个特定节点之间的计数级别

我有以下 XML 结构:

我的问题是关于编号。上面的 XML 可以看作是一个嵌套列表。

编号的默认格式是“1.1.1”,level="multiple"。但如果列表嵌套第 4 次或更多次,则格式应更改为 '1',level="single"。

上述结构的期望输出将是:

在我看来,例如,如果我的当前节点是第一个节点,我需要计算我的当前节点和父节点之间有多少祖先。如果计算出的数字小于 4,则使用“1.1.1”作为列表项格式,否则使用“1”作为格式。

我现在尝试了几件事,但都没有奏效。我能够计算出当前节点一般有多少祖先,但这是计算完整的祖先树,直到特定节点“someSubNodeInXmlFile”。

这是否可以通过一个简单的 xpath 表达式来实现,或者我是否尝试使用从 current() 开始的递归模板来计算数字,如果需要,则查找每个下一个祖先,如果不是,则在数字上加一并继续下一个祖先?

我可以想象后一个想法不是很有效(如果它确实有效的话)。但是最好的解决方案是什么?

提前致谢。

BRgrds,延斯

0 投票
1 回答
6824 浏览

c# - WPF Multibinding RelativeSource Findancestor 评估性能

在以下 MultiBinding 表达式的情况下,如果 PropB 多次更改,绑定引擎将搜索 DataGrid 祖先多少次?

如果 PropertyC(和它的路径)从未改变,它会只搜索一次吗?还是会在每次更改多重绑定中的属性之一时搜索祖先?假设每个属性都有更改通知。

0 投票
1 回答
118 浏览

wpf - (WPF) 如何在后面的代码中找到关于两个 ItemsControl 的祖先?

我有一个 ItemsControl(A)。ItemSourece 是一个“帐户”类。它包含一些控件和另一个 ItemsControl(B)。

ItemsControl(B) 包括一些 CheckBox。它的 ItemSourece 是包含在“Account”类中的 ObservableCollection。CheckBox 的内容绑定到内容。CheckBox 的 IsChecked 绑定到 IsChecked。

在此处输入图像描述

现在,当我单击 CheckBox 时,我想获取“帐户”类中的 ID 和用户,但我不知道如何获取它们。我已经尝试使用

但它仍然无法得到父母。尽管运行时可以显示 parentElement.VisualParent,但实际上它不起作用。 在此处输入图像描述 在此处输入图像描述

请帮我!谢谢!

0 投票
0 回答
56 浏览

c# - 如何在资源中使用绑定来避免错误?

如何在资源中使用绑定来避免错误?

我现在正在研究我的第一个 wpf 项目。我在以下控件StyleWindows.Resource加入了参考。

它运行良好,但是在应用程序启动时出现错误。

我确定错误是由于Color="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button}, Path=Foreground, Mode=OneWay, Converter={StaticResource SingleValueDebugPrintConverter}}",在被其他控件引用之前,绑定Windows.Resource没有祖先。

我这样做是否正确?错误是可以避免的吗?

更新#1

几个小时以来一直在研究类似的问题,但没有一个与我遇到的问题相符。

绑定目标需要是可视化树的一部分。资源字典中没有数据上下文。确切的修复将取决于您的场景细节。有关一般性建议,请参阅副本。——彼得·杜尼霍

Peter Duniho 的回答可能解释了为什么bindinginWindow.Resource不起作用,但我找不到任何解决方法。ProxyElement其他帖子中提到的技巧是绑定到DataContextnot Ancestor

更新#2

无论如何,我找到了正确的方法。使用TemplateBinding而不是FindAncestor.

感谢样式和模板 (WPF .NET)。Stackoverflow 确实需要先审查某人的问题,然后再将其作为duplicate.