private void setPropertyChanged(INotifyPropertyChanged businessClass)
        {
            try
            {
                businessClass.PropertyChanged -= businessClassPropertyChanged;
                businessClass.PropertyChanged += businessClassPropertyChanged;
                _controlPropertyChanged.Add(businessClass);

                var properties = businessClass.GetType().GetProperties();
                foreach (var t in properties)
                {
                    try
                    {
                        var valore = t.GetValue(businessClass, null);
                        var key = valore as INotifyPropertyChanged;
                        if (key != null)
                        {
                            key.PropertyChanged -= businessClassPropertyChanged;
                            key.PropertyChanged += businessClassPropertyChanged;
                            _controlPropertyChanged.Add(key);
                            if (businessClass is BaseDTOOfint && !_businessRelations.ContainsKey(key))
                                _businessRelations.Add(key, (BaseDTOOfint)businessClass);
                            setPropertyChanged(key);
                        }
                    }
                    catch (Exception ex)
                    {
                        _log.ErrorFormat("Errore inaspettato nel set della proprietà - SINGOLA PROPRIETA' - {0} - proprietà:{1} - class:{2} - azienda:{3}", ex, Utility.GetMethodDescription(), t.ToString(), businessClass.ToString(), Login.Instance.CurrentLogin().Azienda);
                        throw;
                    }
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato nel set della proprietà - {0} - class:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), businessClass.ToString(), Login.Instance.CurrentLogin().Azienda);
                throw;
            }
        }