DependencyObject Kelas

Definisi

Mewakili objek yang berpartisipasi dalam sistem properti dependensi.

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
Warisan
DependencyObject
Turunan
Atribut

Contoh

Contoh berikut berasal dari DependencyObject untuk membuat kelas abstrak baru. Kelas kemudian mendaftarkan properti terlampir dan menyertakan anggota dukungan untuk properti terlampir tersebut.

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

Keterangan

Kelas DependencyObject memungkinkan layanan sistem properti Windows Presentation Foundation (WPF) pada banyak kelas turunannya.

Fungsi utama sistem properti adalah menghitung nilai properti, dan untuk memberikan pemberitahuan sistem tentang nilai yang telah berubah. Kelas kunci lain yang berpartisipasi dalam sistem properti adalah DependencyProperty. DependencyProperty memungkinkan pendaftaran properti dependensi ke dalam sistem properti, dan menyediakan identifikasi dan informasi tentang setiap properti dependensi, sedangkan DependencyObject sebagai kelas dasar memungkinkan objek untuk menggunakan properti dependensi.

DependencyObject layanan dan karakteristik meliputi hal-hal berikut:

  • Dukungan hosting properti dependensi. Anda mendaftarkan properti dependensi dengan memanggil Register metode , dan menyimpan nilai pengembalian metode sebagai bidang statis publik di kelas Anda.

  • Dukungan hosting properti terlampir. Anda mendaftarkan properti terlampir dengan memanggil RegisterAttached metode , dan menyimpan nilai pengembalian metode sebagai bidang baca-saja statis publik di kelas Anda. (Ada juga persyaratan anggota tambahan; perhatikan bahwa ini mewakili implementasi khusus WPF untuk properti terlampir. Untuk detailnya, lihat Gambaran Umum Properti Attached.) Properti terlampir Anda kemudian dapat diatur pada kelas apa pun yang berasal dari DependencyObject.

  • Dapatkan, atur, dan hapus metode utilitas untuk nilai properti dependensi apa pun yang ada di DependencyObject.

  • Metadata, dukungan nilai koerce, pemberitahuan perubahan properti, dan ambil alih panggilan balik untuk properti dependensi atau properti terlampir. Selain itu DependencyObject , kelas memfasilitasi metadata properti per pemilik untuk properti dependensi.

  • Kelas dasar umum untuk kelas yang berasal dari ContentElement, , Freezableatau Visual. (UIElement, kelas elemen dasar lain, memiliki hierarki kelas yang mencakup Visual.)

Konstruktor

Nama Deskripsi
DependencyObject()

Menginisialisasi instans baru dari kelas DependencyObject.

Properti

Nama Deskripsi
DependencyObjectType

DependencyObjectType Mendapatkan yang membungkus jenis CLR instans ini.

Dispatcher

Dispatcher Mendapatkan ini DispatcherObject dikaitkan dengan.

(Diperoleh dari DispatcherObject)
IsSealed

Mendapatkan nilai yang menunjukkan apakah instans ini saat ini disegel (baca-saja).

Metode

Nama Deskripsi
CheckAccess()

Menentukan apakah utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)
ClearValue(DependencyProperty)

Menghapus nilai lokal properti. Properti yang akan dihapus ditentukan oleh DependencyProperty pengidentifikasi.

ClearValue(DependencyPropertyKey)

Menghapus nilai lokal properti baca-saja. Properti yang akan dihapus ditentukan oleh DependencyPropertyKey.

CoerceValue(DependencyProperty)

Memaksa nilai properti dependensi yang ditentukan. Ini dilakukan dengan memanggil fungsi apa pun CoerceValueCallback yang ditentukan dalam metadata properti untuk properti dependensi seperti yang ada pada panggilan DependencyObject.

Equals(Object)

Menentukan apakah yang disediakan DependencyObject setara dengan saat ini DependencyObject.

GetHashCode()

Mendapatkan kode hash untuk ini DependencyObject.

GetLocalValueEnumerator()

Membuat enumerator khusus untuk menentukan properti dependensi mana yang telah mengatur nilai secara lokal pada ini DependencyObject.

GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
GetValue(DependencyProperty)

Mengembalikan nilai efektif properti dependensi saat ini pada instans ini dari DependencyObject.

InvalidateProperty(DependencyProperty)

Mengevaluasi kembali nilai efektif untuk properti dependensi yang ditentukan.

MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Dipanggil setiap kali nilai efektif dari properti dependensi apa pun pada ini DependencyObject telah diperbarui. Properti dependensi tertentu yang berubah dilaporkan dalam data peristiwa.

ReadLocalValue(DependencyProperty)

Mengembalikan nilai lokal properti dependensi, jika ada.

SetCurrentValue(DependencyProperty, Object)

Mengatur nilai properti dependensi tanpa mengubah sumber nilainya.

SetValue(DependencyProperty, Object)

Mengatur nilai lokal properti dependensi, yang ditentukan oleh pengidentifikasi properti dependensinya.

SetValue(DependencyPropertyKey, Object)

Mengatur nilai lokal properti dependensi baca-saja, yang ditentukan oleh DependencyPropertyKey pengidentifikasi properti dependensi.

ShouldSerializeProperty(DependencyProperty)

Mengembalikan nilai yang menunjukkan apakah proses serialisasi harus membuat serialisasi nilai untuk properti dependensi yang disediakan.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
VerifyAccess()

Memberlakukan bahwa utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)

Berlaku untuk

Lihat juga