Bagikan melalui


DependencyProperty.AddOwner Metode

Definisi

Menambahkan jenis lain sebagai pemilik properti dependensi yang telah didaftarkan ke jenis.

Overload

AddOwner(Type)

Menambahkan jenis lain sebagai pemilik properti dependensi yang telah terdaftar.

AddOwner(Type, PropertyMetadata)

Menambahkan jenis lain sebagai pemilik properti dependensi yang telah terdaftar, menyediakan metadata properti dependensi untuk properti dependensi karena akan ada pada jenis pemilik yang disediakan.

AddOwner(Type)

Menambahkan jenis lain sebagai pemilik properti dependensi yang telah terdaftar.

public:
 System::Windows::DependencyProperty ^ AddOwner(Type ^ ownerType);
public System.Windows.DependencyProperty AddOwner (Type ownerType);
member this.AddOwner : Type -> System.Windows.DependencyProperty
Public Function AddOwner (ownerType As Type) As DependencyProperty

Parameter

ownerType
Type

Jenis yang akan ditambahkan sebagai pemilik properti dependensi ini.

Mengembalikan

Referensi ke pengidentifikasi asli DependencyProperty yang mengidentifikasi properti dependensi. Pengidentifikasi ini harus diekspos oleh kelas penambahan public static readonly sebagai bidang.

Keterangan

Metode ini memungkinkan sistem properti untuk mengenali properti dependensi pada jenis yang awalnya tidak mendaftarkan properti dependensi tertentu tersebut.

Biasanya, AddOwner digunakan untuk menambahkan properti dependensi ke kelas yang belum mengekspos properti dependensi tersebut melalui pewarisan kelas terkelola (pewarisan kelas akan menyebabkan properti pembungkus diwarisi oleh kelas turunan, dan dengan demikian akan memberikan akses tabel anggota umum ke properti dependensi sudah). AddOwner memungkinkan sistem properti mengenali properti dependensi pada jenis yang awalnya tidak mendaftarkan properti dependensi tersebut.

Tanda tangan ini tidak memungkinkan untuk menentukan metadata. Ketika Anda menggunakan metode ini, metadata secara otomatis dihasilkan untuk jenis baru DependencyProperty dan pemiliknya. Metadata yang dihasilkan secara otomatis adalah hasil dari metadata gabungan dari semua jenis dasar yang memiliki properti ini yang ditentukan. Jika tidak ada metadata gabungan yang tersedia, maka metadata default untuk properti akan digunakan. Jika properti didaftarkan dengan menggunakan RegisterAttached metode , maka metadata default sama dengan metadata yang dibuat saat RegisterAttached dipanggil. Jika tidak, PropertyMetadata objek dibuat dengan properti yang DefaultValue diatur ke default jenis properti dan semua properti PropertyMetadata lainnya diatur ke null. AddOwner(Type, PropertyMetadata) Gunakan tanda tangan jika Anda ingin menyediakan metadata untuk versi properti dependensi seperti yang ditambahkan ke jenis yang disediakan.

Nilai yang dikembalikan dari metode ini biasanya digunakan untuk mendeklarasikan dan mengekspos properti dependensi dengan menyimpan pengidentifikasi properti dependensi. Pengidentifikasi menyediakan akses ke properti dependensi jika Anda ingin memanggil API sistem properti terhadap properti dependensi, terutama karena ada pada kelas menambahkan pemilik. Nama properti yang sama untuk pemilik asli dan pemilik yang ditambahkan harus digunakan untuk menunjukkan fungsionalitas serupa. Anda harus menggunakan DependencyProperty nilai AddOwner pengembalian metode untuk menentukan pengidentifikasi properti dependensi, dan juga untuk mendeklarasikan pembungkus properti CLR, untuk properti dependensi yang ditambahkan ke jenis menggunakan AddOwner.

Metodologi AddOwner yang direkomendasikan di atas digunakan saat membuat properti dependensi yang dideklarasikan dalam WPF. Misalnya, baik Border dan Control tentukan BorderBrush properti dependensi, yang memiliki fungsionalitas serupa. Control mendefinisikan propertinya BorderBrush ke sistem properti dengan memanggil AddOwner berdasarkan pemilik Border asli dan pengidentifikasi properti dependensi terdaftarnya BorderBrushProperty . Nilai AddOwner yang dikembalikan kemudian digunakan untuk membuat bidang statis DependencyProperty baru (BorderBrushProperty) untuk properti tersebut pada pemilik yang BorderBrush ditambahkan, dan pembungkus properti juga dinyatakan.

Berlaku untuk

AddOwner(Type, PropertyMetadata)

Menambahkan jenis lain sebagai pemilik properti dependensi yang telah terdaftar, menyediakan metadata properti dependensi untuk properti dependensi karena akan ada pada jenis pemilik yang disediakan.

public:
 System::Windows::DependencyProperty ^ AddOwner(Type ^ ownerType, System::Windows::PropertyMetadata ^ typeMetadata);
public System.Windows.DependencyProperty AddOwner (Type ownerType, System.Windows.PropertyMetadata typeMetadata);
member this.AddOwner : Type * System.Windows.PropertyMetadata -> System.Windows.DependencyProperty
Public Function AddOwner (ownerType As Type, typeMetadata As PropertyMetadata) As DependencyProperty

Parameter

ownerType
Type

Jenis yang akan ditambahkan sebagai pemilik properti dependensi ini.

typeMetadata
PropertyMetadata

Metadata yang memenuhi syarat properti dependensi seperti yang ada pada jenis yang disediakan.

Mengembalikan

Referensi ke pengidentifikasi asli DependencyProperty yang mengidentifikasi properti dependensi. Pengidentifikasi ini harus diekspos oleh kelas penambahan public static readonly sebagai bidang.

Keterangan

Metode ini memungkinkan sistem properti untuk mengenali properti dependensi pada jenis yang awalnya tidak mendaftarkan properti dependensi tertentu tersebut.

Nilai yang dikembalikan dari metode ini digunakan untuk mendeklarasikan dan mengekspos properti dependensi, terutama karena ada pada kelas menambahkan pemilik. Umumnya, nama properti yang sama untuk pemilik asli dan pemilik yang ditambahkan harus digunakan untuk menunjukkan fungsionalitas serupa. Adalah praktik yang baik untuk mengekspos pengidentifikasi, serta pembungkus properti CLR baru, untuk properti dependensi yang ditambahkan ke jenis menggunakan AddOwner.

Metodologi AddOwner yang direkomendasikan di atas digunakan saat membuat API yang dideklarasikan dalam WPF. Misalnya, baik Border dan Control tentukan BorderBrush properti dependensi, yang memiliki fungsionalitas serupa. Control mendefinisikan propertinya BorderBrush ke sistem properti dengan memanggil AddOwner pemilik Border asli dan pengidentifikasi properti dependensi terdaftarnya BorderBrushProperty . Nilai AddOwner yang dikembalikan kemudian digunakan untuk membuat bidang statis DependencyProperty (BorderBrushProperty) untuk properti tersebut pada pemilik yang ditambahkan, dan BorderBrush pembungkus properti juga dinyatakan.

Pengidentifikasi properti dependensi pemilik yang ditambahkan harus digunakan untuk operasi seperti GetValue. Namun, operasi khusus jenis yang melibatkan jenis atau instans kelas yang ditambahkan wer sebagai pemilik dengan metadata yang berbeda masih akan mengembalikan hasil yang diharapkan. Ini berlaku bahkan jika pengidentifikasi properti dependensi asli (bukan pemilik yang ditambahkan) ditentukan dalam panggilan ke metode seperti GetValue atau GetMetadata. Metadata untuk pemilik yang ditambahkan diabdikan oleh panggilan itu AddOwner sendiri, tidak selalu dirujuk secara eksklusif oleh bidang penambahan pengidentifikasi kelas pemilik. Namun demikian, ada baiknya untuk mengekspos pengidentifikasi, serta pembungkus properti CLR baru, untuk properti dependensi yang ditambahkan ke jenis menggunakan AddOwner, karena gagal melakukannya menciptakan perbedaan antara representasi CLR dan XAML dari properti Anda.

Metadata yang disediakan digabungkan dengan metadata properti untuk properti dependensi karena ada pada pemilik dasar. Setiap karakteristik yang ditentukan dalam metadata dasar asli akan bertahan. Hanya karakteristik yang secara khusus diubah dalam metadata baru yang akan mengambil alih karakteristik metadata dasar. Beberapa karakteristik, seperti DefaultValue, diganti jika ditentukan dalam metadata baru. Lainnya, seperti PropertyChangedCallback, digabungkan. Pada akhirnya, perilaku penggabungan tergantung pada jenis metadata properti yang digunakan untuk penimpaan, sehingga perilaku yang dijelaskan di sini adalah untuk kelas metadata properti yang ada yang digunakan oleh properti dependensi WPF. Untuk detailnya, lihat Metadata Properti Dependensi dan Metadata Properti Kerangka Kerja.

Berlaku untuk