Questa documentazione è stata archiviata e non viene gestita.

Metodo DependencyObject.InvalidateProperty

Aggiornamento: novembre 2007

Valuta di nuovo il valore effettivo della proprietà di dipendenza specificata.

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

public void InvalidateProperty(
	DependencyProperty dp
)
public void InvalidateProperty(
	DependencyProperty dp
)
public function InvalidateProperty(
	dp : DependencyProperty
)
Non è possibile utilizzare metodi in XAML.

Parametri

dp
Tipo: System.Windows.DependencyProperty

L’identificatore DependencyProperty della proprietà di dipendenza da invalidare.

Quando si chiama InvalidateProperty, potrebbero essere richiamate eventuali funzioni CoerceValueCallback o PropertyChangedCallback associate e applicabili registrate per tale proprietà di dipendenza.

La chiamata a InvalidateProperty in una proprietà il cui valore locale è impostato non avrà effetto, perché il valore locale ha la precedenza su altri input del sistema di proprietà, ad eccezione delle animazioni. È tuttavia possibile chiamare ClearValue, quindi InvalidateProperty. Per ulteriori informazioni, vedere Precedenza del valore della proprietà di dipendenza.

La chiamata a InvalidateProperty non è necessariamente applicabile per molti scenari di proprietà di dipendenza. Se una proprietà di dipendenza viene invalidata a causa di modifiche apportate ai valori di alcuni elementi costitutivi, il sistema di proprietà invalida e valuta di nuovo automaticamente la proprietà di dipendenza. Esistono tuttavia altri scenari appropriati in cui InvalidateProperty risulta utile. In particolare è possibile utilizzare InvalidateProperty all'interno del callback del valore soggetto a coercizione o della proprietà modificata relativamente a una proprietà di dipendenza diversa. È anche possibile utilizzare InvalidateProperty per forzare una nuova valutazione di un'associazione a fronte di un'origine dati che non è in grado di implementare il meccanismo di notifica INotifyPropertyChanged consigliato (probabilmente in caso di utilizzo di classi di dati dalle quali non possono derivare altre classi o laddove i dati sono membri statici).

Nell'esempio seguente viene chiamato InvalidateProperty su una proprietà personalizzata, ogni volta che le proprietà coinvolte nel calcolo della proprietà invalidata subiscono modifiche. Si tratta di una tecnica alternativa alla chiamata al metodo CoerceValue, perché invalidando la proprietà vengono anche chiamati eventuali oggetti CoerceValueCallback registrati.

static AreaButton()
{
    WidthProperty.OverrideMetadata(typeof(AreaButton), new FrameworkPropertyMetadata(new PropertyChangedCallback(InvalidateAreaProperty)));
    HeightProperty.OverrideMetadata(typeof(AreaButton), new FrameworkPropertyMetadata(new PropertyChangedCallback(InvalidateAreaProperty)));
}
static void InvalidateAreaProperty(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    d.InvalidateProperty(AreaProperty);
}


Windows Vista

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

.NET Framework

Supportato in: 3.5, 3.0
Mostra: