كيفية القيام بما يلي: تطبيق على خاصية التبعية
يوضح هذا المثال كيفية عمل نسخة وقت تشغيل اللغة العامة (CLR) الخاصية مع DependencyProperty الحقل وبالتالي تعريف خاصية تبعية . عندما قمت تعريف الخصائص الخاصة بك وتريد هذه لدعم جوانب عديدة من Windows Presentation Foundation (WPF) الوظائف بما في ذلك أنماط و ربط البيانات توريث الحركة و القيم الافتراضية يجب تطبيق مثل الخاصية التبعية .
مثال
المثال التالي أولاً بتسجيل الخاصية التبعية بواسطة استدعاء Register الأسلوب. اسم حقل المعرف الذي تستخدمه لتخزين اسم ومواصفات يجب أن يكون صواب التبعية Name التي اخترتها لملف لخاصية التبعية كجزء من Register استدعاء إلحاق بواسطة سلسلة حرفية Property. على سبيل المثال، إذا قمت بتسجيل خاصية تبعية مع Name من Location ، ثم يجب تسمية حقل معرف تعرّف خاصية تبعية LocationProperty.
في هذا المثال، الاسم الخاصية التبعية و به CLR أسلوب استرجاع القيمة State هو حقل معرف StateProperty; النوع الخاصية هو Boolean; ثم اكتب يقوم بتسجيل هو خاصية التبعية MyStateControl.
إذا كنت لا تتبع هذا النمط التسمية ، قد لا تقرير المصممين الممتلكات الخاصة بك بشكل صحيح ، وبعض جوانب نظام الملكية تطبيق أسلوب قد لا تتصرف كما هو متوقع.
يمكنك أيضاً تعيين بيانات التعريف الافتراضي خاصية التبعية . يسجل هذا المثال القيمة الافتراضية لخاصية State التبعية لتكون false .
Public Class MyStateControl
Inherits ButtonBase
Public Sub New()
MyBase.New()
End Sub
Public Property State() As Boolean
Get
Return CType(Me.GetValue(StateProperty), Boolean)
End Get
Set(ByVal value As Boolean)
Me.SetValue(StateProperty, value)
End Set
End Property
Public Shared ReadOnly StateProperty As DependencyProperty = DependencyProperty.Register("State", GetType(Boolean), GetType(MyStateControl),New PropertyMetadata(False))
End Class
public class MyStateControl : ButtonBase
{
public MyStateControl() : base() { }
public Boolean State
{
get { return (Boolean)this.GetValue(StateProperty); }
set { this.SetValue(StateProperty, value); }
}
public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
"State", typeof(Boolean), typeof(MyStateControl),new PropertyMetadata(false));
}
لمزيد من المعلومات حول كيفية و سبب لتنفيذ خاصية تبعية ، مقابل إلى فقط النسخ CLR الخاصية مع حقل "خاص" ، راجع نظرة عامة حول خصائص التبعية.