Esporta (0) Stampa
Espandi tutto
Espandi Riduci a icona
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Delegato CoerceValueCallback

Fornisce un modello per un metodo chiamato ogni volta che un valore di proprietà di dipendenza è rivalutando, o la coercizione viene specificamente richiesta.

Spazio dei nomi:  System.Windows
Assembly:  WindowsBase (in WindowsBase.dll)

public delegate Object CoerceValueCallback(
	DependencyObject d,
	Object baseValue
)

Parametri

d
Tipo: System.Windows.DependencyObject
l'oggetto su cui la proprietà esiste. Quando il callback viene richiamato, il sistema di proprietà passa tale valore.
baseValue
Tipo: System.Object
Il nuovo valore della proprietà, prima di qualsiasi tentativo di coercizione.

Valore restituito

Tipo: System.Object
Il valore assegnato (con tipo appropriato.

Callback basati su CoerceValueCallback può essere assegnato a una proprietà di dipendenza con varie tecniche. Ognuna di queste tecniche richiede innanzitutto creare un nuovo oggetto metadati della proprietà (PropertyMetadata, o una classe derivata come FrameworkPropertyMetadata). Creare l'oggetto di metadati utilizzando una firma del costruttore che accetta coerceValueCallback il parametro e assegna il parametro al gestore di callback. O costruire i metadati da una firma e impostare CoerceValueCallback proprietà prima di inserire i metadati in uso.

Quando si dispone di questi metadati, è possibile:

  • Definire una nuova proprietà di dipendenza in una nuova classe, utilizzando qualsiasi firma di Register, fornendo metadati come typeMetadata valore.

  • Eseguire l'override dei metadati (chiamata OverrideMetadata(Type, PropertyMetadata)) per una proprietà di dipendenza esistente, quando si deriva dalla classe proprietario della proprietà di dipendenza.

  • Aggiungere una proprietà di dipendenza esistente in un nuovo DependencyObject classificare, utilizzando i nuovi metadati, chiamando AddOwner(Type, PropertyMetadata).

Le implementazioni di questo callback di verificare che il valore baseValue e determinare base al valore o sul tipo se questo è un valore che deve essere ulteriormente assegnato.

CoerceValueCallback per una proprietà di dipendenza richiamato in qualsiasi momento che il sistema di proprietà o altre chiamate del chiamante CoerceValue in una classe DependencyObject istanza di, specificando l'identificatore della proprietà come dp.

Le modifiche al valore della proprietà possono provenire da qualsiasi partecipante possibile al sistema di proprietà. Ciò include gli stili, l'annullamento generica, trigger, l'ereditarietà del valore della proprietà e le impostazioni locali di valore.

È consigliabile evitare in genere specificare più di uno CoerceValueCallback per qualsiasi proprietà di dipendenza specificata (che esegue l'override o che viene aggiunto ai nuovi metadati per una proprietà di dipendenza già esisteva una classe CoerceValueCallback). Uno solo dei callback sarà in grado di agire. Il callback operativo è quello che è stato applicato alla maggior parte della classe derivata nell'erediterietà rispetto a DependencyObject chiamante. Altri callback assegnati ai metadati per la proprietà di dipendenza come esiste più in alto nella gerarchia del proprietario vengono sostituiti quando i metadati vengono sottoposti a override.

Nell'esempio è inclusa l'implementazione di questo callback per assegnare il valore archiviato di una proprietà di dipendenza basata su altri input, come valore di un'altra proprietà. In questo caso, i controlli di callback per verificare se ShirtType la proprietà corrisponde a un tipo di camicia con pulsanti, in questo caso viene definito un colore predefinito iniziale per ButtonColor, se il tipo di camicia non dispone di pulsanti, assegna ButtonColor valore di nuovo a un valore iniziale, generando interfaccia utente (non visualizzata) rimuovere tale elenco a discesa da efficaci scelte.


		private static object CoerceButtonColor(DependencyObject d, object value)
		{
			ShirtTypes newShirtType = (d as Shirt).ShirtType;
			if (newShirtType == ShirtTypes.Dress || newShirtType == ShirtTypes.Bowling)
			{
				return ButtonColors.Black;				
			}
			return ButtonColors.None;
		}


.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft