public EventCreateViewModel(IEnumerable <string> sports, IEnumerable <TournamentBaseModel> tournaments, IEnumerable <ParticipantTournamentModel> participants) { this.eventCreateModel = new EventCreateModel { DateOfEvent = DateTime.Now.AddMonths(2).Date }; this.Sports = new ObservableCollection <string>(sports); this.Tournaments = new ObservableCollection <TournamentBaseModel>(tournaments); this.Participants = new ObservableCollection <ParticipantTournamentModel>(participants); this.SelectedParticipants = new ObservableCollection <ParticipantTournamentModel>(); this.CreateEventCommand = new DelegateCommand(() => Create(eventCreateModel), CanCreate); this.MoveToEventCommand = new DelegateCommand( () => MoveToEvent(SelectedParticipant), obj => SelectedParticipant != null); this.MoveAllToEventCommand = new DelegateCommand( () => MoveAllToEvent(), obj => true); this.MoveFromEventCommand = new DelegateCommand( () => MoveFromEvent(SelectedEventsParticipant), obj => SelectedEventsParticipant != null); this.SortedTournaments.Filter = obj => { TournamentBaseModel tournamentBaseModel = obj as TournamentBaseModel; return(tournamentBaseModel.SportName == SelectedSport); }; this.SortedParticipants.Filter = obj => { bool isValid = SelectedTournament != null; if (isValid) { ParticipantTournamentModel participantModel = obj as ParticipantTournamentModel; isValid = participantModel .Tournaments .Select(t => t.Name) .Contains(SelectedTournament.Name) && !SelectedParticipants .Select(p => p.Name) .Contains(participantModel.Name); } return(isValid); }; }
private void MoveFromEvent(ParticipantTournamentModel participant) { SelectedParticipants.Remove(participant); SortedParticipants.Refresh(); }
private void MoveToEvent(ParticipantTournamentModel participant) { SelectedParticipants.Add(participant); SortedParticipants.Refresh(); }