/// <summary> /// Handle the delete member button click event. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void OnDeleteMemberButton(object sender, RoutedEventArgs args) { Team team = (Team)TeamSelectionComboBox.SelectedItem; MemberTab memberTab = (MemberTab)MemberTypeTabControl.SelectedItem; // Find a child data-grid of the tab control DataGrid membersDataGrid = (DataGrid)MemberTypeTabControl.GetChildren().Find(control => control is DataGrid); // If we haven't selecting anything in the data grid, we can't remove anything if (membersDataGrid.SelectedItem == null) { return; } int currentSelectedIndex = membersDataGrid.SelectedIndex; team.RemoveMember(memberTab.MemberType, (Member)membersDataGrid.SelectedItem); if (currentSelectedIndex == membersDataGrid.Items.Count) { currentSelectedIndex -= 1; } membersDataGrid.SelectedIndex = currentSelectedIndex; }
/// <summary> /// Handle the type selection changed. /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void OnTypeSelectionChanged(object sender, SelectionChangedEventArgs args) { // Find a child data-grid of the tab control DataGrid membersDataGrid = (DataGrid)MemberTypeTabControl.GetChildren().Find(control => control is DataGrid); if (membersDataGrid.SelectedItem == null) { return; } Type newType = (Type)TypeSelectionComboBox.SelectedItem; Member member = (Member)membersDataGrid.SelectedItem; // No change in type means that we don't need to do anything if (newType == member.GetType()) { return; } Team team = (Team)TeamSelectionComboBox.SelectedItem; // Remove the member from the old type and move it to the new type collection in the team member map team.RemoveMember(member.GetType(), member); // Convert the member to its respective type via casting Member newMember = new Member(); if (newType == typeof(Wrestler)) { newMember = new Wrestler(); } else if (newType == typeof(Coach)) { newMember = new Coach(); } // Copy the values from the old member to the converted member newMember.FirstName = member.FirstName; newMember.LastName = member.LastName; newMember.Gender = member.Gender; newMember.School = member.School; newMember.YearsOfExperience = member.YearsOfExperience; team.AddMember(newType, newMember); }