FrameworkPropertyMetadata.BindsTwoWayByDefault 屬性

定義

取得或設定值,指出屬性是否預設雙向繫結。

C#
public bool BindsTwoWayByDefault { get; set; }

屬性值

Boolean

如果中繼資料所在的相依性屬性預設雙向繫結,則為 true;否則為 false。 預設為 false

例外狀況

中繼資料已套用至相依性屬性作業,因此中繼資料已密封,而且無法設定中繼資料的屬性。

範例

下列範例會從各種相依性屬性欄位取得預設中繼資料、查詢其上各種 FrameworkPropertyMetadata 屬性的值,並使用資訊來填入資料表來實作「中繼資料瀏覽器」。

C#
pm = dp.GetMetadata(dp.OwnerType);
C#
FrameworkPropertyMetadata fpm = pm as FrameworkPropertyMetadata;
if (fpm!=null) {
    AffectsArrange.Text = (fpm.AffectsArrange) ? "Yes" : "No";
    AffectsMeasure.Text = (fpm.AffectsMeasure) ? "Yes" : "No";
    AffectsRender.Text = (fpm.AffectsRender) ? "Yes" : "No";
    Inherits.Text = (fpm.Inherits) ? "Yes" : "No";
    IsDataBindingAllowed.Text = (fpm.IsDataBindingAllowed) ? "Yes" : "No";
    BindsTwoWayByDefault.Text = (fpm.BindsTwoWayByDefault) ? "Yes" : "No";
}

備註

如果沒有這個屬性 true ,系結更新預設會根據建構函式的預設行為 Binding 或對等的 XAML 語法進行單向更新。

在現有的元素中,您通常會在報表狀態和可由使用者動作修改之相依性屬性的中繼資料中發現此屬性設定 true 為 ,例如 Selector.IsSelected

此屬性只會報告相依性屬性的預設系結更新特性。 實例上設定為此屬性的任何系結都可以在本機設定 Mode 系結的 屬性,並變更此預設值。

的任何衍生類別 PropertyMetadata 的屬性通常會在物件模型中定義為讀寫。 這是為了讓實例在初始化之後進行調整。 不過,在呼叫 RegisterAddOwnerOverrideMetadata 時取用中繼資料之後,屬性系統會密封中繼資料實例和傳達中繼資料特性的屬性現在會被視為不可變。 嘗試在此中繼資料實例上設定此屬性之後 IsSealed true ,將會引發例外狀況。

XAML 文字使用方式

這個類別的成員通常不會用於 XAML。

適用於

產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

另請參閱