上下文感知菜单

时间:2014-01-08 21:41:44

标签: c# wpf menu

是否有用于实现上下文感知菜单/按钮的模式?假设我有一个名为copy的菜单项,以及各种选项卡上的众多数据网格。我想复制menubutton复制当前选择的任何内容,可以是几种不同的控件中的任何一种。

我们在整个应用程序中实现了一个消息代理,因此当按下按钮时,可以轻松通知各种组件。所以我的第一个想法是按钮通知onclick,然后让每个组件检查它是否是当前选择的项目,以及中提琴。

我的第一枪看起来如下:

bool isselected = false;
FocusManager.AddGotFocusHandler(mycontrol, (o, e) => { isselected = true; });
FocusManager.AddLostFocusHandler(mycontrol, (o, e) => { isselected = false; });

MessageBroker.Subscribe<CopyButtonClicked>(() =>
{
    if(isselected)
        // Do Copy
});

问题是,当然,当您单击复制按钮时,之前的控件将失去焦点。

我接近这个问题了吗?还有哪些方法可以实现这种功能。

在有人对这个显而易见的评论之前,我意识到这是糟糕的UI设计。不幸的是,我对这是否得到实施没有任何发言权。

0 个答案:

没有答案