DependencyObject.InvalidateProperty(DependencyProperty) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen bağımlılık özelliği için geçerli değeri yeniden değerlendirir.
public:
void InvalidateProperty(System::Windows::DependencyProperty ^ dp);
public void InvalidateProperty(System.Windows.DependencyProperty dp);
member this.InvalidateProperty : System.Windows.DependencyProperty -> unit
Public Sub InvalidateProperty (dp As DependencyProperty)
Parametreler
Geçersiz DependencyProperty kılınacak özelliğin tanımlayıcısı.
Örnekler
Aşağıdaki örnek, geçersiz kılınan özelliğin hesaplamalarında yer alan özellikler her değiştiğinde özel bir özelliği çağırır InvalidateProperty . Özelliği geçersiz kılındığı için, bu yöntemi çağırmak CoerceValue için alternatif bir tekniktir.CoerceValueCallback
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);
}
Shared Sub New()
WidthProperty.OverrideMetadata(GetType(AreaButton), New FrameworkPropertyMetadata(New PropertyChangedCallback(AddressOf InvalidateAreaProperty)))
HeightProperty.OverrideMetadata(GetType(AreaButton), New FrameworkPropertyMetadata(New PropertyChangedCallback(AddressOf InvalidateAreaProperty)))
End Sub
Private Shared Sub InvalidateAreaProperty(ByVal d As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
d.InvalidateProperty(AreaProperty)
End Sub
Açıklamalar
çağrısı InvalidatePropertyyaptığınızda, ilgili ve uygulanabilir CoerceValueCallback işlevler veya PropertyChangedCallback bu bağımlılık özelliği için kaydedilen işlevler çağrılabilir.
Yerel değer kümesi olan bir özelliği çağırmanın InvalidateProperty hiçbir etkisi olmaz çünkü yerel değer, animasyonlar dışında diğer özellik sistemi girişlerine göre önceliklidir. Ancak, çağrısı ClearValueyapabilir ve ardından öğesini çağırabilirsiniz InvalidateProperty. Daha fazla bilgi için bkz . Bağımlılık Özellik Değeri Önceliği.
Çağrı InvalidateProperty birçok bağımlılık özelliği senaryosu için geçerli olmayabilir. Bir bağımlılık özelliği, bileşenlerden herhangi birinde yapılan değer değişiklikleri nedeniyle geçersiz kılınırsa, özellik sistemi bağımlılık özelliğini otomatik olarak geçersiz kılır ve yeniden değerlendirir. Ancak yine de yararlı olan InvalidateProperty bazı uygun senaryolar vardır. Özellikle, farklı bir bağımlılık özelliği için zorlama değerinin veya özelliğin değiştirilmiş geri çağırmasının içinde kullanabilirsiniz InvalidateProperty . Ayrıca, önerilen InvalidateProperty bildirim mekanizmasını uygulayamayan bir veri kaynağına (belki de türetilemeyen veri sınıfları kullanılıyorsa veya verilerin statik üye olduğu durumlarda) bir bağlamanın yeniden değerlendirilmesini zorlamak için de kullanabilirsinizINotifyPropertyChanged.