我正在寻求关于如何处理wpf mvvm项目中日益增长的命令的建议。我的视图模型收集了许多命令,我感觉在项目成熟之前需要做些更好的处理方式。目前,所有的命令都只是列在视图模型的属性中,并在VM的构造函数中进行加载或者懒加载。
如果有影响的话,我正在使用MVVM Light的RelayCommand实现ICommand。
我曾在一个大型开源项目中看到把它们放在集合中,并将这些集合分组为更多的集合……但那似乎很混乱,因为所有这些命令都绑定到菜单。在这个应用程序中,我没有典型的下拉菜单,但我确实使用了许多不同的上下文菜单/按钮。
总之,从代码可读性/可维护性和功能的角度来看,有哪些处理命令的想法?
如果有影响的话,我正在使用MVVM Light的RelayCommand实现ICommand。
我曾在一个大型开源项目中看到把它们放在集合中,并将这些集合分组为更多的集合……但那似乎很混乱,因为所有这些命令都绑定到菜单。在这个应用程序中,我没有典型的下拉菜单,但我确实使用了许多不同的上下文菜单/按钮。
总之,从代码可读性/可维护性和功能的角度来看,有哪些处理命令的想法?
ObservableCollection<ICommand>
并将UI实现为包含按钮的ItemsControl
,其中ItemTemplate定义了按钮的样式。当有一些命令需要分组时,这是我通常采用的做法。 - Federico Berasategui