/// <summary>
        /// Returns a list of updated CircuitProperties to be passed into the StateControls
        /// </summary>
        public CircuitPropertyCollection GetUpdatedCircuitProperties(Action <string> registerChange)
        {
            if (!selections.SetEquals(oldSelections))
            {
                CircuitPropertyCollection circuitProperties = CircuitPropertyCollection.Empty;
                oldSelections.Clear();
                oldSelections.UnionWith(selections);
                foreach (var selection in selections)
                {
                    circuitProperties.Intersect(CircuitAttributes.GetProperties(selection, registerChange));
                }
                return(circuitProperties);
            }

            return(null);
        }