DependencyObject Sınıf

Tanım

Bağımlılık özellik sistemine katılan bir nesneyi temsil eder.

public ref class DependencyObject : System::Windows::Threading::DispatcherObject
public class DependencyObject : System.Windows.Threading.DispatcherObject
[System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))]
public class DependencyObject : System.Windows.Threading.DispatcherObject
type DependencyObject = class
    inherit DispatcherObject
[<System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))>]
type DependencyObject = class
    inherit DispatcherObject
Public Class DependencyObject
Inherits DispatcherObject
Devralma
DependencyObject
Türetilmiş
Öznitelikler

Örnekler

Aşağıdaki örnek, yeni bir soyut sınıf oluşturmak için öğesinden DependencyObject türetilir. Sınıf daha sonra ekli bir özelliği kaydeder ve bu ekli özellik için destek üyelerini içerir.

public abstract class AquariumObject3 : DependencyObject
{
    public enum Bouyancy
    {
        Floats,
        Sinks,
        Drifts
    }
    public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
      "Bouyancy",
      typeof(Bouyancy),
      typeof(AquariumObject3),
      new FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange),
      new ValidateValueCallback(ValidateBouyancy)
    );
    public static void SetBouyancy(UIElement element, Bouyancy value)
    {
        element.SetValue(BouyancyProperty, value);
    }
    public static Bouyancy GetBouyancy(UIElement element)
    {
        return (Bouyancy)element.GetValue(BouyancyProperty);
    }
    private static bool ValidateBouyancy(object value)
    {
        Bouyancy bTest = (Bouyancy) value;
        return (bTest == Bouyancy.Floats || bTest == Bouyancy.Drifts || bTest==Bouyancy.Sinks);
    }
    public static readonly DependencyProperty IsDirtyProperty = DependencyProperty.Register(
      "IsDirty",
      typeof(Boolean),
      typeof(AquariumObject3)
    );
}
Public MustInherit Class AquariumObject3
    Inherits DependencyObject
    Public Enum Bouyancy
        Floats
        Sinks
        Drifts
    End Enum
    Public Shared ReadOnly BouyancyProperty As DependencyProperty = DependencyProperty.RegisterAttached("Bouyancy", GetType(Bouyancy), GetType(AquariumObject3), New FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange), New ValidateValueCallback(AddressOf ValidateBouyancy))
    Public Shared Sub SetBouyancy(ByVal element As UIElement, ByVal value As Bouyancy)
        element.SetValue(BouyancyProperty, value)
    End Sub
    Public Shared Function GetBouyancy(ByVal element As UIElement) As Bouyancy
        Return CType(element.GetValue(BouyancyProperty), Bouyancy)
    End Function
    Private Shared Function ValidateBouyancy(ByVal value As Object) As Boolean
        Dim bTest As Bouyancy = CType(value, Bouyancy)
        Return (bTest = Bouyancy.Floats OrElse bTest = Bouyancy.Drifts OrElse bTest = Bouyancy.Sinks)
    End Function
    Public Shared ReadOnly IsDirtyProperty As DependencyProperty = DependencyProperty.Register("IsDirty", GetType(Boolean), GetType(AquariumObject3))
End Class

Açıklamalar

sınıfı, DependencyObject birçok türetilmiş sınıfında Windows Presentation Foundation (WPF) özellik sistemi hizmetlerini etkinleştirir.

Özellik sisteminin birincil işlevi, özelliklerin değerlerini hesaplamak ve değişen değerler hakkında sistem bildirimi sağlamaktır. Özellik sistemine katılan bir diğer anahtar sınıfı da 'dir DependencyProperty. DependencyProperty , bağımlılık özelliklerinin özellik sistemine kaydedilmesini sağlar ve her bağımlılık özelliği hakkında tanımlama ve bilgi sağlarken DependencyObject , temel sınıf olarak nesnelerin bağımlılık özelliklerini kullanmasını sağlar.

DependencyObject hizmetleri ve özellikleri şunlardır:

  • Desteği barındıran bağımlılık özelliği. yöntemini çağırarak ve yöntemin Register dönüş değerini sınıfınızda genel statik alan olarak depolayarak bağımlılık özelliğini kaydedersiniz.

  • Ekli özellik barındırma desteği. yöntemini çağırarak ve yöntemin RegisterAttached dönüş değerini sınıfınızda genel statik salt okunur alan olarak depolayarak ekli bir özelliği kaydedersiniz. (Ek üye gereksinimleri de vardır; bunun ekli özellikler için WPF'ye özgü bir uygulamayı temsil ettiğini unutmayın. Ayrıntılar için bkz. Ekli Özelliklere Genel Bakış.) Ekli özelliğiniz, öğesinden DependencyObjecttüretilen herhangi bir sınıfta ayarlanabilir.

  • üzerinde DependencyObjectbulunan bağımlılık özelliklerinin değerleri için yardımcı program yöntemlerini alın, ayarlayın ve temizleyin.

  • Meta veriler, zorlama değeri desteği, özellik değişikliği bildirimi ve bağımlılık özellikleri veya ekli özellikler için geri çağırmaları geçersiz kılma. Ayrıca sınıfı, DependencyObject bir bağımlılık özelliği için sahip başına özellik meta verilerini kolaylaştırır.

  • , Freezableveya Visual'den ContentElementtüretilen sınıflar için ortak bir temel sınıf. (UIElement, başka bir temel öğe sınıfı, içeren Visualbir sınıf hiyerarşisine sahiptir.)

Oluşturucular

DependencyObject()

DependencyObject sınıfının yeni bir örneğini başlatır.

Özellikler

DependencyObjectType

DependencyObjectType Bu örneğin CLR türünü sarmalayan öğesini alır.

Dispatcher

Dispatcher Bunun DispatcherObject ilişkili olduğu öğesini alır.

(Devralındığı yer: DispatcherObject)
IsSealed

Bu örneğin şu anda korumalı (salt okunur) olup olmadığını gösteren bir değer alır.

Yöntemler

CheckAccess()

Çağıran iş parçacığının bu DispatcherObjectöğesine erişimi olup olmadığını belirler.

(Devralındığı yer: DispatcherObject)
ClearValue(DependencyProperty)

Bir özelliğin yerel değerini temizler. Temizlenecek özellik bir DependencyProperty tanımlayıcı tarafından belirtilir.

ClearValue(DependencyPropertyKey)

Salt okunur özelliğin yerel değerini temizler. Temizlenecek özellik tarafından DependencyPropertyKeybelirtilir.

CoerceValue(DependencyProperty)

Belirtilen bağımlılık özelliğinin değerini zorlama. Bu, çağrısında var olan bağımlılık özelliği için özellik meta verilerinde belirtilen herhangi bir CoerceValueCallback işlevi çağırarak DependencyObjectgerçekleştirilir.

Equals(Object)

Sağlanan DependencyObject öğesinin geçerli DependencyObjectile eşdeğer olup olmadığını belirler.

GetHashCode()

Bu DependencyObjectiçin bir karma kodu alır.

GetLocalValueEnumerator()

Hangi bağımlılık özelliklerinin bu DependencyObjectüzerinde yerel olarak ayarlı değerlere sahip olduğunu belirlemek için özelleştirilmiş bir numaralandırıcı oluşturur.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
GetValue(DependencyProperty)

Bir öğesinin bu örneğindeki bağımlılık özelliğinin DependencyObjectgeçerli geçerli değerini döndürür.

InvalidateProperty(DependencyProperty)

Belirtilen bağımlılık özelliği için geçerli değeri yeniden değerlendirir.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Bu DependencyObject konudaki herhangi bir bağımlılık özelliğinin etkin değeri her güncelleştirildiğinde çağrılır. Değiştirilen belirli bağımlılık özelliği olay verilerinde bildirilir.

ReadLocalValue(DependencyProperty)

Varsa, bağımlılık özelliğinin yerel değerini döndürür.

SetCurrentValue(DependencyProperty, Object)

Bağımlılık özelliğinin değerini, değer kaynağını değiştirmeden ayarlar.

SetValue(DependencyProperty, Object)

Bağımlılık özelliği tanımlayıcısı tarafından belirtilen bağımlılık özelliğinin yerel değerini ayarlar.

SetValue(DependencyPropertyKey, Object)

Salt okunur bağımlılık özelliğinin, bağımlılık özelliğinin DependencyPropertyKey tanımlayıcısı tarafından belirtilen yerel değerini ayarlar.

ShouldSerializeProperty(DependencyProperty)

Serileştirme işlemlerinin sağlanan bağımlılık özelliği için değeri serileştirmesi gerekip gerekmediğini gösteren bir değer döndürür.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
VerifyAccess()

Çağıran iş parçacığının bu DispatcherObjectöğesine erişmesini zorlar.

(Devralındığı yer: DispatcherObject)

Şunlara uygulanır

Ayrıca bkz.