在元素(父/子)WPF中获取元素
Posted
技术标签:
【中文标题】在元素(父/子)WPF中获取元素【英文标题】:Get Element inside Element (parent/child) WPF 【发布时间】:2012-05-04 11:19:20 【问题描述】:我有一个关于访问另一个元素中的元素的问题。
情况
<grid name=container>
<grid name=menu >
inside here is the menu
</grid
<button />
<grid>
如果按下按钮,第二个网格(带有菜单)需要隐藏。按下按钮时如何访问网格元素。这需要不使用网格的实际名称,因为它位于数据模板中,并且多个对象使用同一个模板,但只有实际活动的对象需要隐藏。
【问题讨论】:
先放完整代码。即一个带有 DataTemplate 【参考方案1】:RoutedEventArgs 类具有 Source、OriginalSource 属性,可用于确定所需信息。此外,事件处理程序中也提供了 sender 参数。
以下链接解释了 Source、OriginalSource 和 Sender 中的区别(并回答了问题)。 RoutedEventArgs.Source vs Sender
RoutedEventArgs.OriginalSource - 最初引发事件的原始对象
RoutedEventArgs.Source - 引发事件的对象。这通常与 OriginalSource 相同,但在处理复合控件时,它可以是包含 OriginalSource 对象的父级。*
Sender - 处理事件的当前元素
【讨论】:
我实际上不明白。现在我正在使用此代码Button button = (Button)e.Source as Button; ScatterViewItem item = (ScatterViewItem)ScatterView.ContainerFromElement(button);
变量 Item 为我提供了按钮所在位置的 ScatterViewItem。但我不需要 ScatterView 项,而是该 ScatterView 项中名为“菜单”的网格。
查看您的源代码,您不需要父级,而是兄弟级。为此,您必须获取父对象,然后必须找到您正在查看的子对象。类似于 item.FindName("menu") 的东西。 msdn.microsoft.com/en-us/library/…请提供完整的相关源代码,以防以上不能解决您的要求以上是关于在元素(父/子)WPF中获取元素的主要内容,如果未能解决你的问题,请参考以下文章