/// <summary> /// Initializes a new instance of the MainWindowViewModel class. /// </summary> public MainWindowViewModel() { WorkSpace = new ObservableCollection <WorkSpaceViewModel>(); AddViewACommand = new RelayCommand(() => { var guid = System.Guid.NewGuid().ToString(); SimpleIoc.Default.Register <ViewAViewModel>(() => new ViewAViewModel(guid), guid, true); WorkSpaceViewModel w = SimpleIoc.Default.GetInstance <ViewAViewModel>(guid); AddWorkSpaceItem(w); } ); AddViewBCommand = new RelayCommand(() => { var guid = System.Guid.NewGuid().ToString(); SimpleIoc.Default.Register <ViewBViewModel>(() => new ViewBViewModel(guid), guid, true); WorkSpaceViewModel w = SimpleIoc.Default.GetInstance <ViewBViewModel>(guid); AddWorkSpaceItem(w); } ); // If you don't need to keep track of vm, you don't need to register. //AddViewBCommand = new RelayCommand(() => AddWorkSpaceItem(new ViewBViewModel())); //Listen for RemoveWorkSpaceItem Messenger.Default.Register <WorkSpaceViewModel>(this, "RemoveWorkSpaceItem", item => RemoveWorkSpaceItem(item)); }
void RemoveWorkSpaceItem(WorkSpaceViewModel w) { WorkSpace.Remove(w); }
void AddWorkSpaceItem(WorkSpaceViewModel w) { WorkSpace.Add(w); }