读书人

WPF ContextMenu简单有关问题大神速

发布时间: 2013-02-28 11:33:09 作者: rapoo

WPF ContextMenu简单问题,大神速来!


MenuItem itemA = new MenuItem()
{
Header = "设置为停用",
};
itemD.Click += AllContextMenuItemClick;

ContextMenu cmenu = new ContextMenu()
{
Width = 100,
ItemsSource = menuitem,
Tag=im.Tag
};
cmenu.Add(itemA);

Image im = new Image();
im.Tag="我要的数据";
im.ContextMenu=cmenu

private void AllContextMenuItemClick(object sender, RoutedEventArgs e)
{
//我想在这里,也就是menuItem的click事件里获取到 image.Tag里的东西.
}


wpf
[解决办法]
List<Image> imgs = new List<Image>();

Image im = new Image();
im.Tag="我要的数据";
im.ContextMenu=cmenu
imgs.Add(im);

private void AllContextMenuItemClick(object sender, RoutedEventArgs e)
{
//我想在这里,也就是menuItem的click事件里获取到 image.Tag里的东西.
}

这里面遍历查找吧。
[解决办法]
引用:
那你得定义个全局变量。你这是局部变量。用完了就没了。生命周期不对。
这个肯定取不到的。全局的就可以取到了。

他的代码没有写全,这个image肯定在外部被引用的,所以不用担心生命周期。
你的这个点击事件,要从sender参数入手,那个sender应该就是MenuItem?itemA,然后再往上要找ContextMenu cmenu,通过Parent属性,该属性返回的是DependencyObject对象,你要强制类型转换到ContextMenu 上面,之后就可以访问Tag属性了。

读书人网 >C#

热点推荐