EventAggrigationProvider added to handle events between windows/usercontrols, persons can be added now

This commit is contained in:
2020-05-17 21:23:45 +02:00
parent 94056f5f08
commit 8ae6337c00
5 changed files with 67 additions and 11 deletions

View File

@ -9,17 +9,21 @@ using TrackerLibrary.Models;
namespace TrackerWPFUI.ViewModels
{
public class CreateTeamViewModel : Conductor<object>
public class CreateTeamViewModel : Conductor<object>, IHandle<PersonModel>
{
private string _teamName = "";
private BindableCollection<PersonModel> _availableTeamMembers;
private PersonModel _selectedTeamMemberToAdd;
private BindableCollection<PersonModel> _selectedTeamMembers = new BindableCollection<PersonModel>();
private PersonModel _selectedTeamMemberToRemove;
private bool _selectedTeamMembersIsVisible = true;
private bool _addPersonIsVisible = false;
public CreateTeamViewModel()
{
AvailableTeamMembers = new BindableCollection<PersonModel>(GlobalConfig.Connection.GetPerson_All());
EventAggregationProvider.TrackerEventAggregator.Subscribe(this);
}
@ -34,6 +38,26 @@ namespace TrackerWPFUI.ViewModels
}
}
public bool SelectedTeamMembersIsVisible
{
get { return _selectedTeamMembersIsVisible; }
set
{
_selectedTeamMembersIsVisible = value;
NotifyOfPropertyChange(() => SelectedTeamMembersIsVisible);
}
}
public bool AddPersonIsVisible
{
get { return _addPersonIsVisible; }
set
{
_addPersonIsVisible = value;
NotifyOfPropertyChange(() => AddPersonIsVisible);
}
}
public BindableCollection<PersonModel> AvailableTeamMembers
{
get { return _availableTeamMembers; }
@ -74,7 +98,7 @@ namespace TrackerWPFUI.ViewModels
public void AddMember()
{
SelectedTeamMembers.Add(SelectedTeamMemberToAdd);
AvailableTeamMembers.Remove(SelectedTeamMemberToAdd );
AvailableTeamMembers.Remove(SelectedTeamMemberToAdd);
NotifyOfPropertyChange(() => CanCreateTeam);
}
public PersonModel SelectedTeamMemberToRemove
@ -105,7 +129,9 @@ namespace TrackerWPFUI.ViewModels
public void CreateMember()
{
ActivateItem(new CreatePersonViewModel());
SelectedTeamMembersIsVisible = false;
AddPersonIsVisible = true;
}
public bool CanCreateTeam
{
@ -140,6 +166,17 @@ namespace TrackerWPFUI.ViewModels
//TODO - Pass the team back to the parent and close the form
}
public void Handle(PersonModel message)
{
if (!string.IsNullOrWhiteSpace(message.FullName))
{
SelectedTeamMembers.Add(message);
NotifyOfPropertyChange(() => CanCreateTeam);
}
SelectedTeamMembersIsVisible = true;
AddPersonIsVisible = false;
}
}
}