我制作了一个通过MouseDown
事件激活的上下文菜单。此事件检查用户是否单击了右键,如果是,则打开菜单。我使用相同的事件为列表框和列表视图打开相同的上下文菜单。有没有办法检查哪一个激活了MouseDown事件?
编辑:我会更具体一点。我可以告诉哪个控制器从事件本身激活了事件..我想知道哪个控制器从已被点击的上下文菜单项激活了该事件。
答案 0 :(得分:2)
如果你有类似的东西:
private void MouseDown(object sender, MouseButtonEventArgs e)
{
}
您可以查看sender
:
if(sender is ListView)
{
//event fired by ListView
}
if(sender is ListBox)
{
//event fired by ListBox
}
等
答案 1 :(得分:0)
我通过使用上下文菜单的Tag属性解决了它。我把那个触发事件的发送者对象放在那里,然后我就可以了:
ListView lv = resultsContextMenu.Tag as ListView;
if (lv == null) //listbox was the one to call the mouse down event
{ //do stuff }
此代码在用户选择的菜单项本身内调用