語言

DependencyProperty.RegisterAttachedReadOnly 方法

定義

註冊一個唯讀附加屬性。

多載

名稱 Description
RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

使用指定的屬性類型、擁有者類型和屬性元數據註冊唯讀附加屬性。

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

使用指定的屬性類型、擁有者類型、屬性元數據和驗證回呼,註冊唯讀附加屬性。

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

使用指定的屬性類型、擁有者類型和屬性元數據註冊唯讀附加屬性。

public:
 static System::Windows::DependencyPropertyKey ^ RegisterAttachedReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ defaultMetadata);
public static System.Windows.DependencyPropertyKey RegisterAttachedReadOnly(string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata defaultMetadata);
static member RegisterAttachedReadOnly : string * Type * Type * System.Windows.PropertyMetadata -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterAttachedReadOnly (name As String, propertyType As Type, ownerType As Type, defaultMetadata As PropertyMetadata) As DependencyPropertyKey

參數

name
String

要註冊的相依屬性名稱。

propertyType
Type

屬性的類型。

ownerType
Type

負責登記相依屬性的擁有者類型。

defaultMetadata
PropertyMetadata

相依屬性屬性的屬性元資料。

傳回

一個依賴屬性鍵,應該用來設定類別中靜態唯讀欄位的值,之後再用來參考依賴屬性。

備註

此方法回傳型別 DependencyPropertyKey,而 回 RegisterAttached 傳 型別 DependencyProperty。 通常,代表唯讀屬性的鍵不會公開,因為這些鍵可以用來呼叫 來設定相依屬性值 SetValue(DependencyPropertyKey, Object)。 你的類別設計會影響需求,但一般建議限制存取 DependencyPropertyKey 和可見性,只限於那些必須將該相依屬性設定為類別或應用程式邏輯一部分的程式碼部分。 同時建議你為唯讀依賴屬性公開一個相依屬性識別碼,方法是在你的類別中將 的DependencyPropertyKey.DependencyPropertypublic static readonly值暴露為欄位。

唯讀附加屬性是罕見的情境,因為附加屬性的主要情境是其在 XAML 中的使用。 沒有公開設定器,附加屬性無法在 XAML 語法中設定。

欲了解更多有關依賴性財產登記的資訊,請參見 DependencyProperty。

使用 RegisterAttaded 來處理值繼承的相依屬性

一種將相依屬性登記為附加資產的特殊情境是支援財產價值繼承。 即使類別定義了暴露依賴屬性的屬性包裝 access,且你不打算公開 Get* 和 Set* 靜態方法來提供真正的附加屬性支援,你也應該註冊值繼承的依賴屬性屬性 RegisterAttached 。 雖然屬性值繼承看似適用於非附加的相依屬性,但透過執行樹中某些元素邊界的非附加屬性的繼承行為尚未定義。 將財產登記為附加狀態,實際上使該附屬財產成為屬性系統的全域屬性,並確保屬性價值繼承能跨越元素樹的所有邊界運作。 一律使用 RegisterAttached 來註冊您在中繼資料中指定 Inherits 的屬性。 欲了解更多資訊,請參閱 《財產價值繼承》。

適用於

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

使用指定的屬性類型、擁有者類型、屬性元數據和驗證回呼,註冊唯讀附加屬性。

public:
 static System::Windows::DependencyPropertyKey ^ RegisterAttachedReadOnly(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ defaultMetadata, System::Windows::ValidateValueCallback ^ validateValueCallback);
public static System.Windows.DependencyPropertyKey RegisterAttachedReadOnly(string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata defaultMetadata, System.Windows.ValidateValueCallback validateValueCallback);
static member RegisterAttachedReadOnly : string * Type * Type * System.Windows.PropertyMetadata * System.Windows.ValidateValueCallback -> System.Windows.DependencyPropertyKey
Public Shared Function RegisterAttachedReadOnly (name As String, propertyType As Type, ownerType As Type, defaultMetadata As PropertyMetadata, validateValueCallback As ValidateValueCallback) As DependencyPropertyKey

參數

name
String

要註冊的相依屬性名稱。

propertyType
Type

屬性的類型。

ownerType
Type

負責登記相依屬性的擁有者類型。

defaultMetadata
PropertyMetadata

相依屬性屬性的屬性元資料。

validateValueCallback
ValidateValueCallback

一個使用者建立的回調參考,應該能執行除一般型別驗證外的任何依賴屬性值的自訂驗證。

傳回

一個相依屬性鍵,應該用來設定你類別中靜態唯讀欄位的值,然後用來參考相依屬性。

備註

此方法回傳型別 DependencyPropertyKey,而 回 RegisterAttached 傳 型別 DependencyProperty。 通常,代表型別 DependencyProperty的鍵。 通常,代表唯讀屬性的鍵不會公開,因為這些鍵可以用來呼叫 來設定相依屬性值 SetValue(DependencyPropertyKey, Object)。 你的類別設計會影響需求,但一般建議限制存取 DependencyPropertyKey 和可見性,只限於那些必須將該相依屬性設定為類別或應用程式邏輯一部分的程式碼部分。 同時建議你為唯讀依賴屬性公開一個相依屬性識別碼,方法是在你的類別中將 的DependencyPropertyKey.DependencyPropertypublic static readonly值暴露為欄位。

唯讀附加屬性是罕見的情境,因為附加屬性的主要情境是其在 XAML 中的使用。 沒有公開設定器,附加屬性無法在 XAML 語法中設定。

欲了解更多有關依賴性財產登記的資訊,請參見 DependencyProperty。

使用 RegisterAttaded 來處理值繼承的相依屬性

一種將相依屬性登記為附加資產而非 Register 附加的情境是為了支援財產價值繼承。 即使類別定義了暴露依賴屬性的屬性包裝 access,且你不打算公開 Get* 和 Set* 靜態方法來提供真正的附加屬性支援,你也應該註冊值繼承的依賴屬性屬性 RegisterAttached 。 雖然屬性值繼承看似適用於非附加的相依屬性,但透過執行樹中某些元素邊界的非附加屬性的繼承行為尚未定義。 將財產登記為附加狀態,實際上使該附屬財產成為屬性系統的全域屬性,並確保屬性價值繼承能跨越元素樹的所有邊界運作。 一律使用 RegisterAttached 來註冊您在中繼資料中指定 Inherits 的屬性。 欲了解更多資訊,請參閱 《財產價值繼承》。

適用於