Implementazione di un editor di modelli Web Form
Un editor di modelli è una finestra di progettazione speciale che supporta la creazione e la modifica di modelli per controlli server ASP.NET basati su modelli. Un controllo con un editor di modelli include un'area di progettazione in cui lo sviluppatore può trascinare i controlli dalla casella degli strumenti per creare modelli interni. I controlli server DataList e DataGrid disponibili in .NET Framework SDK sono esempi di controlli che supportano la modifica di modelli. Per informazioni sulla creazione di un controllo basato su un modello, vedere Sviluppo di un controllo basato su template.
.NET Framework include la classe base astratta System.Web.UI .Design.TemplatedControlDesigner che deriva da ControlDesigner ed espone le proprietà e i metodi necessari per la modifica dei modelli. Un editor di modelli deve derivare da TemplatedControlDesigner. Nella procedura riportata di seguito vengono descritti i passaggi dell'implementazione di un editor di modelli.
Per implementare un editor di modelli
Definire una classe che derivi da TemplatedControlDesigner.
Eseguire l'override della proprietà AllowResize ereditata da ControlDesigner per consentire il ridimensionamento del controllo. Si consiglia di permettere il ridimensionamento dei controlli in modalità modello, anche se normalmente questa operazione non è consentita.
Eseguire l'override del metodo GetCachedTemplateEditingVerbs. Un controllo esegue l'override di questo metodo per restituire l'elenco di verbi di modifica dei modelli al controllo. Vedere il passaggio 4 per una descrizione di un verbo di modifica dei modelli.
Eseguire l'override del metodo CreateTemplateEditingFrame. Questo metodo accetta un'istanza di TemplateEditingVerb come argomento. TemplateEditingVerb è un verbo di progettazione, ovvero una classe che deriva da DesignerVerb, che permette all'editor dei modelli di aggiungere un comando al controllo in fase di progettazione. Per informazioni sui verbi di progettazione, vedere Verbi di progettazione.
Eseguire l'override del metodo GetTemplateContent che recupera il contenuto del modello.
Eseguire l'override del metodo SetTemplateContent che imposta il contenuto del modello.
Come in qualsiasi altra finestra di progettazione, eseguire l'override dei metodi GetDesignTimeHtml, GetEmptyDesignTimeHtml e GetErrorDesignTimeHtml ereditati dalla classe ControlDesigner. Se il controllo basato su un modello è associato a dati, il metodo GetDesignTimeHtml sottoposto a override deve impostare l'origine dati del controllo sull'origine dati in fase di progettazione, come descritto in Implementazione di una finestra di progettazione per controlli Web Form associati a dati.
Se il controllo basato su un modello è associato a dati, è necessario implementare anche quanto descritto in Implementazione di una finestra di progettazione per controlli Web Form associati a dati ed eseguire l'override dei seguenti metodi aggiuntivi di TemplatedControlDesigner (descritti ai passaggi 8 e 9).
Eseguire l'override del metodo GetTemplateContainerDataSource per indicare l'origine dati del contenitore del modello. Questo viene chiamato dalla finestra di dialogo di associazione dei dati quando vengono apportate modifiche all'associazione dei dati di controlli che si trovano all'interno di un modello.
Eseguire l'override del metodo GetTemplateContainerDataItemProperty per accedere al nome della proprietà DataItem del contenitore del modello.
Per un esempio di editor di modelli, vedere Esempio di finestra di progettazione per controlli Web Form associati a dati e basati su modelli.
Vedere anche
Esempio di finestra di progettazione per controlli Web Form associati a dati e basati su modelli | Implementazione di una finestra di progettazione per controlli Web Form associati a dati | Finestre di progettazione personalizzate | Supporto in fase di progettazione per Web Form