private void ThrowMembersVisibilityChanged()
 {
     if (this.MembersVisibilityChanged != null)
     {
         TeamExpandCollapseChangeEventArgs args = new TeamExpandCollapseChangeEventArgs(this);
         this.MembersVisibilityChanged(this, args);
     }
 }
 private void OnViewModelTeamMembersVisibilityChanged(object sender, TeamExpandCollapseChangeEventArgs e)
 {
     this.UpdateViewPortWhenTeamVisualChange(e.Team, false);
     this.navigationPane.RefreshThumbnail();
     this.LayoutOrgChart(false, false);
 }
		private void OnViewModelChildrenExpandedOrCollapsed(object sender, TeamExpandCollapseChangeEventArgs e)
		{
			if (this.viewModel.ShouldLayoutAfterExpandCollapse)
			{
                this.UpdateViewPortWhenTeamVisualChange(e.Team, true);
			}
			this.navigationPane.RefreshThumbnail();
		}
		private void OnNodeIsExpandedChanged(object sender, EventArgs e)
		{
			var team = sender as OrgTeamViewModel;
			if (team != null)
			{
				this.graphSource.ToggleChildrenVisibility(team, team.IsExpanded);
				if (this.ChildrenIsExpandedChanged != null)
				{
                    TeamExpandCollapseChangeEventArgs args = new TeamExpandCollapseChangeEventArgs(team);
                    this.ChildrenIsExpandedChanged(this, args);
				}
			}
		}		
 private void OrgTeamMembersVisibilityChanged(object sender, TeamExpandCollapseChangeEventArgs args)
 {
     if (this.TeamMembersVisibilityChanged != null)
     {
         this.TeamMembersVisibilityChanged(this, args);
     }
 }
 internal void OpenDropMembersDialog(OrgTeamViewModel team, OrgTeamMemberViewModel member)
 {
     DropDialogViewModel dropModel = new DropDialogViewModel()
     {
         Header = string.Format("Drop in {0} team", team.Name),
         DropMessage = string.Format("Are you sure you want to drop {0} in {1} team?", member.Name, team.Name)
     };
     DropDialog dialog = new DropDialog();
     dialog.DataContext =  dropModel;
     dropModel.OkCommand = new DelegateCommand(x =>
         {
             member.Team.TeamMembers.Remove(member);
             member.Team = team;
             team.TeamMembers.Add(member);
             if (this.TeamMembersVisibilityChanged != null)
             {
                 TeamExpandCollapseChangeEventArgs args = new TeamExpandCollapseChangeEventArgs(team);
                 this.TeamMembersVisibilityChanged(this, args);
             }
             dialog.Close();
         });
     dropModel.CancelCommand = new DelegateCommand(x => dialog.Close());
     dialog.ShowDialog();
 }