//  Memorizza in _editingProperties tutte le proprietà editable
        private void InitializeEditingProperties()
        {
            //	Per ogni proprietà pubblica di EditingObject alla quale è stato associato l’attributo Editable:
            //    se la proprietà è write-only, sollevare un’eccezione;
            //    creare una nuova EditingProperty sulla proprietà e aggiungerla alla collezione _editingProperties;
            //    visualizzare nella finestra di output del debugger la descrizione completa dell'EditingProperty
            //      ad esempio: "Add EditingProperty Titolo  {Label = Titolo, Width = 100} OriginalValue = TitoloLibro_1"

            Type type = EditingObject.GetType();

            foreach (PropertyInfo propertyInfo in type.GetProperties())
            {
                EditableAttribute[] attributes = (EditableAttribute[])propertyInfo.GetCustomAttributes(typeof(EditableAttribute), false);
                if (attributes.Length == 0)
                {
                    continue;
                }
                if (!propertyInfo.CanRead)
                {
                    throw new ApplicationException("Attributo editable non applicabile");
                }
                EditingProperty editingProperty = new EditingProperty(propertyInfo, attributes[0], EditingObject);
                _editingProperties.Add(editingProperty);
                Console.WriteLine("Add EditingProperty " + editingProperty.ToString());
            }
        }