是否有用于实现上下文感知菜单/按钮的模式?假设我有一个名为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设计。不幸的是,我对这是否得到实施没有任何发言权。