내 ViewModel 클래스의 명령 수를 줄이려고합니다. 5 개 이상의 List를 포함하는 ViewModel이 하나 있는데 (보기에 Listbox를 사용하여 Presentation에 ItemSource 매개 변수에 ObservableCollection을 바인딩하고 SelectedItem 속성을 바인딩 함) 각 목록에는 추가/제거/등 버튼이 있어야합니다. .Silverlight 명령 MVVM
그래서, 그것은 다음과 같습니다
public class PersonViewModel : ViewModelBase
{
Person _Person;
private ObservableCollection<WorkPlaceViewModel> _WPlaces;
private ObservableCollection<LanguageViewModel> _Languages;
... other lists
private WorkPlaceViewModel _SelectedWorkPlaceView;
...
}
추가 5 × 명령은 ViewModel에 큰 조금 있습니다. CommandParameter에 문자열을 하드 코딩하고 ViewModel의 스위치 케이스로 처리 할 수 있지만 해킹과 같은 것 같습니다. : p 또는 각 목록 상자에 대해 제거 명령을 만들고 SelectedItem을 매개 변수로 전달해야합니까?
MVVM에서 가장 좋은 방법은 무엇입니까?
목표는 직원을위한 프로필 페이지를 만드는 것입니다. 프로필 페이지에서 직원의 이전 직장, 교육 정보, 기술 등이 목록 상자에 표시됩니다. 각 직장, 교육 등은 자체 모델 클래스를 가지고 있으며 자체 VM입니다. ObservableCollections를 별도의 클래스 (PersonViewModel에서 WorkPlaceViewModels의 OCollection 대신 WorkPlaceListViewModel을 사용하는 대신)에 넣고 거기에 명령을 구현하면서 코드를 다시 작성합니다. 이 방법으로 이러한 ListViewModel은 PersonViewModel 대신 명령을 처리합니다. – npalotai