我需要实现获取信息和提供上下文菜单的上下文菜单提供程序。 我有很多实体类型,每个实体都有自己的选项。
选项是按类型和实例的条件。 我正在使用WPF,winform和其他UI技术,我需要一些通用的东西,让我可以将它用于每种技术。
我可以使用某种设计模式吗?
答案 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#