4 pagine in totale: <<Indietro 1 [2] 3 4 Avanti >>
Metadata Properties
Le Dependency Properties possono inoltre essere utilizzate per creare delle proprietà contenenti dei metadati (metadata properties), che sono delle particolari proprietà che non possono essere modificate a run-time e che vengono utilizzate per evitare l'alterazione di particolari tipi di informazioni da noi scelte.
Anche in questo caso, per definire una metadata property bisogna chiamare il metodo Register della classe DependencyProperty ed utilizzarne l'overload con più parametri, in quanto dobbiamo specificare quali metadati associare alla nostra proprietà di dipendenza e dobbiamo settare inoltre, che tale proprietà è di tipo "Metadata" e che di conseguenza il suo contenuto non può essere modificato a run-time. Per far ciò, va creato un nuovo oggetto di tipo PropertyMetadata indicando il valore di default e il valore Metadata dell'enumerazione DependencyPropertyOptions.
public static readonly DependencyProperty FromProperty;
SendMail.FromProperty = DependencyProperty.Register("From", typeof(string), typeof(SendMail), new PropertyMetadata("info@peppedotnet.it", DependencyPropertyOptions.Metadata));Attached Properties
La terza ed ultima implementazione di tali oggetti, infine, prevede l'utilizzo delle Dependency Properties per la creazione di Attached Properties, delle proprietà appartenenti ad una particolare activity custom, ma che possono essere utilizzate anche da altre activites.
Le attached properties vengono create attraverso il metodo RegisterAttached della classe DependencyProperty all'interno dell'activity "padre".
public static readonly DependencyProperty MailServerProperty = DependencyProperty.RegisterAttached("MailServer", typeof(string), typeof(SendMail), new PropertyMetadata("localhost"));Tale activity padre, dovrà inoltre fornire i metodi di accesso get e set, per convenzione di nome Get[nomeProprietà] se Set[nomeProprietà], per la modifica delle informazioni contenute nella proprietà di dipendenza o per il loro prelievo da parte di altre activity.
public static object GetMailServer(object dependencyObject)
{
if (dependencyObject == null)
throw new ArgumentNullException("dependencyObject");
return (dependencyObject as DependencyObject).GetValue(MailServerProperty);
}
public static void SetMailServer(object dependencyObject, object val)
{
if (dependencyObject == null)
throw new ArgumentNullException("dependencyObject");
(dependencyObject as DependencyObject).SetValue(MailServerProperty, val);
}4 pagine in totale: <<Indietro 1 [2] 3 4 Avanti >>
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà
Contenuti
Stampa
Download


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
