Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 如何在桌面应用程序中实现工具栏、菜单及其命令?_User Interface_Design Patterns_Desktop Application - Fatal编程技术网

User interface 如何在桌面应用程序中实现工具栏、菜单及其命令?

User interface 如何在桌面应用程序中实现工具栏、菜单及其命令?,user-interface,design-patterns,desktop-application,User Interface,Design Patterns,Desktop Application,在概念层面(不是特定于平台/框架),在使用MVC模式的桌面应用程序中,如何实现工具栏和菜单等组件(以及它们包含的命令),以实现最小耦合和最大代码重用?通常,命令绑定到菜单项,工具栏按钮等将向控件公开以下信息: 执行方法 启用/禁用标志 (可选)可见/隐藏标志 (可选)图标 (可选)文本 (可选)说明 通知的有关命令状态已更改的事件 若您更喜欢使用MVC模式,而不是MVVM,那个么您可能很难确定命令逻辑将放置在何处。您可以通过模型公开这些信息,也可以在控制器中放置相应的代码 如果使用基于组件的

在概念层面(不是特定于平台/框架),在使用MVC模式的桌面应用程序中,如何实现工具栏和菜单等组件(以及它们包含的命令),以实现最小耦合和最大代码重用?

通常,命令绑定到菜单项,工具栏按钮等将向控件公开以下信息:

  • 执行方法
  • 启用/禁用标志
  • (可选)可见/隐藏标志
  • (可选)图标
  • (可选)文本
  • (可选)说明
  • 通知的有关命令状态已更改的事件
若您更喜欢使用MVC模式,而不是MVVM,那个么您可能很难确定命令逻辑将放置在何处。您可以通过模型公开这些信息,也可以在控制器中放置相应的代码


如果使用基于组件的UI,如.NET WPF/WindowsForms/Silverlight等,则可能会为命令创建一个界面,该界面公开所有列出的属性,并创建从MenuItem、ToolbarButton等继承的自定义控件,以处理来自此类界面的信息

通常,命令绑定到菜单项、工具栏按钮等,会向控件公开以下信息:

  • 执行方法
  • 启用/禁用标志
  • (可选)可见/隐藏标志
  • (可选)图标
  • (可选)文本
  • (可选)说明
  • 通知的有关命令状态已更改的事件
若您更喜欢使用MVC模式,而不是MVVM,那个么您可能很难确定命令逻辑将放置在何处。您可以通过模型公开这些信息,也可以在控制器中放置相应的代码


如果使用基于组件的UI,如.NET WPF/WindowsForms/Silverlight等,则可能会为命令创建一个界面,该界面公开所有列出的属性,并创建从MenuItem、ToolbarButton等继承的自定义控件,以处理来自此类界面的信息

你在找什么特别的地方吗?这个问题相当广泛……你在找什么具体的领域吗?这个问题相当广泛。。。