Windows phone 7 在Windows Phone中单击ContextMenu的菜单项时找不到引用的控件

Windows phone 7 在Windows Phone中单击ContextMenu的菜单项时找不到引用的控件,windows-phone-7,contextmenu,silverlight-toolkit,Windows Phone 7,Contextmenu,Silverlight Toolkit,我有一个对象集合,显示在数据绑定列表框中。列表框包含定义为StackPanel的模板,其中包含TextBlock。TextBlock显示从集合绑定的数据。 我还使用Silverlight toolkit for Windows Phone关联上下文菜单。我正在以编程方式将ContextMenu和MenuItems与所选文本块关联。我通过自己的点击事件处理每个菜单项。 我面临的问题是,当我从contextmenu中单击menuitem时,我无法从列表框中获取引用的控件。换句话说,我无法获取显示

我有一个对象集合,显示在数据绑定列表框中。列表框包含定义为StackPanel的模板,其中包含TextBlock。TextBlock显示从集合绑定的数据。

我还使用Silverlight toolkit for Windows Phone关联上下文菜单。我正在以编程方式将ContextMenu和MenuItems与所选文本块关联。我通过自己的点击事件处理每个菜单项。


我面临的问题是,当我从contextmenu中单击menuitem时,我无法从列表框中获取引用的控件。换句话说,我无法获取显示contextmenu的TextBlock引用。

我认为有一种方法可以获取与给定contextmenu关联的元素,但由于我找不到它,这里有一个解决方法

您说您正在以编程方式将ContextMenu与TextBlock关联。然后,您可以使用Wonder来保存对TextBlock的引用。正如您在链接中所看到的,标记包含任意对象。代码如下所示:

首先,将标记设置为textblock(我使用一些通用名称)

然后,在单击处理程序中,检索该文本块

var menuItem = sender as MenuItem;
if(menuItem != null && menuItem.Tag is TextBlock)
   var textBlock = menuItem.Tag as TextBlock;
然后,textBlock是调用ContextMenu的textBlock


希望有帮助。

在ContextMenu类中无法获取引用的控件。但是,对于桌面wpf/silverlight,有一个PlacementTarget属性可能有助于获取引用的控件…
很好地回答了这个问题。我一试就做了标记。这对我很重要。Thax无论如何…:)
var menuItem = sender as MenuItem;
if(menuItem != null && menuItem.Tag is TextBlock)
   var textBlock = menuItem.Tag as TextBlock;