private void refreshContactGrid()
        {
            try
            {
                int selectedID = 0;
                if (initialContactID > 0)
                {
                    selectedID       = initialContactID;
                    initialContactID = 0; // Only used at page initiation, so this stops it interfering later
                }
                else if (selectedContactGridRecord != null)
                {
                    selectedID = selectedContactGridRecord.ID;
                }

                contactGridList             = ClientFunctions.ContactGridList(contactContains, contactActiveOnly, Globals.SelectedClient.ID, includeJob: true);
                ContactDataGrid.ItemsSource = contactGridList;
                if (selectedID > 0)
                {
                    try
                    {
                        if (contactGridList.Exists(c => c.ID == selectedID))
                        {
                            ContactDataGrid.SelectedItem = contactGridList.First(c => c.ID == selectedID);
                            ContactDataGrid.ScrollIntoView(ContactDataGrid.SelectedItem);
                        }
                    }
                    catch (Exception generalException) { MessageFunctions.Error("Error selecting the current contact row", generalException); }
                }
            }
            catch (Exception generalException) { MessageFunctions.Error("Error refreshing client contact details in the grid", generalException); }
        }
 private void refreshNamesList()
 {
     try
     {
         exactName = false;
         string nameLike = NameLike.Text;
         if (nameLike == "")
         {
             PossibleNames.Visibility = Visibility.Hidden;
         }
         else
         {
             int projectClientID = projectSelected? Globals.SelectedClient.ID : 0;
             PossibleNames.Visibility  = Visibility.Visible;
             contactDropList           = ClientFunctions.ContactGridList(contactContains: nameLike, activeOnly: false, clientID: projectClientID, includeJob: false);
             PossibleNames.ItemsSource = contactDropList;
         }
     }
     catch (Exception generalException) { MessageFunctions.Error("Error processing name change", generalException); }
 }
 private void refreshContactCombo()
 {
     contactComboList         = ClientFunctions.ContactGridList(contactContains: "", activeOnly: true, clientID: Globals.SelectedClient.ID, includeJob: false);
     ContactCombo.ItemsSource = contactComboList;
 }