【发布时间】:2011-07-22 19:46:22
【问题描述】:
我想“减少”我的 ViewModel 类中的命令数量。 我有一个包含 5 个以上列表的 ViewModel(使用 View 上的 Listboxes 进行演示,并且我将 ObservableCollection 绑定到其 ItemSource 参数;还绑定了 SelectedItem 属性),并且每个列表都应该有自己的 Add/Remove/etc 按钮。
所以,它看起来像这样:
public class PersonViewModel : ViewModelBase
{
Person _Person;
private ObservableCollection<WorkPlaceViewModel> _WPlaces;
private ObservableCollection<LanguageViewModel> _Languages;
... other lists
private WorkPlaceViewModel _SelectedWorkPlaceView;
...
}
添加 5x2 命令会使 ViewModel 有点大。我可以将一个字符串硬编码到 CommandParameter 并在我的 ViewModel 中使用 switch-case 来处理它,但这听起来像是黑客攻击。 :p 或者我应该为每个列表框创建一个删除命令,并将 SelectedItem 作为参数传递?
在 MVVM 中最好的方法是什么?
【问题讨论】:
标签: silverlight mvvm command viewmodel