上下文菜单提供者的设计模式

时间:2014-03-27 08:13:00

标签: design-patterns user-interface contextmenu

我需要实现获取信息和提供上下文菜单的上下文菜单提供程序。 我有很多实体类型,每个实体都有自己的选项。

选项是按类型和实例的条件。 我正在使用WPF,winform和其他UI技术,我需要一些通用的东西,让我可以将它用于每种技术。

我可以使用某种设计模式吗?

1 个答案:

答案 0 :(得分:0)

command pattern适合您的情况。每个菜单项都将与一个命令对象相关联,因此当使用时单击菜单项,将触发该命令。

代码会喜欢这个;

public interface ICommand
{
    doSomeThing();
}

public class CommandA: ICommand
{}

public class CommandB: ICommand
{}

public class ContextMenuA
{
    ContextMenuA(ICommand a)
    {
        c= a;// a is an instance of CommandA 
    }
    private ICommand c;

    void OnClick()
    {
        if (c)
            c.doSomeThing(): 
    }

}

代码只显示了一般概念,而不是真正的实现。请阅读this:Understanding and Implementing Command Pattern in C#