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

DependencyObject sınıfı, 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ştirilen değerler hakkında sistem bildirimi sağlamaktır. Özellik sistemine katılan başka bir anahtar sınıfıdır 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:

  • Bağımlılık özelliği barındırma desteği. yöntemini çağırarak ve yönteminin 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 bir alan olarak depolayarak ekli bir özelliği kaydedersiniz. (Ek üye gereksinimleri de vardır; bunun ekli özellikler için WPF belirli bir uygulamayı temsil ettiğini unutmayın. Ayrıntılar için bkz. Ek özelliklere genel bakış.) Ekli özelliğiniz daha sonra DependencyObject türetilen herhangi bir sınıfta ayarlanabilir.

  • üzerinde DependencyObjectvar olan tüm 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, DependencyObject sınıfı bir bağımlılık özelliği için sahip başına özellik meta verilerini kolaylaştırır.

  • , ContentElementveya Freezableöğesinden Visualtü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

Name Description
DependencyObject()

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

Özellikler

Name Description
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

Name Description
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 CoerceValueCallbackvar olan bağımlılık özelliği için özellik meta verilerinde belirtilen herhangi bir DependencyObject işlevi çağırarak gerç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 özel bir numaralandırıcı oluşturur.

GetType()

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

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

Bir öğesinin bu örneğindeki bir bağımlılık özelliğinin DependencyObjectgeçerli etkin 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 Objectbasit bir kopyasını oluşturur.

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

Bunun DependencyObject üzerindeki 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)

Bir 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 bir bağımlılık özelliğinin yerel değerini ayarlar.

SetValue(DependencyPropertyKey, Object)

Bağımlılık özelliğinin tanımlayıcısı tarafından belirtilen salt okunur bağımlılık özelliğinin DependencyPropertyKey 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 bir dize 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.