FrameworkPropertyMetadata.BindsTwoWayByDefault 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指示默认情况下属性是否双向绑定。
public:
property bool BindsTwoWayByDefault { bool get(); void set(bool value); };
public bool BindsTwoWayByDefault { get; set; }
member this.BindsTwoWayByDefault : bool with get, set
Public Property BindsTwoWayByDefault As Boolean
属性值
如果此元数据所在的依赖属性默认情况下为双向绑定,则为 true
,否则为 false
。 默认值为 false
。
例外
已对依赖属性操作应用了元数据,因此元数据已密封,且无法设置其属性。
示例
以下示例从各种依赖项属性字段获取默认元数据,查询其上各种 FrameworkPropertyMetadata 属性的值,并使用信息填充表来实现“元数据浏览器”。
pm = dp.GetMetadata(dp.OwnerType);
pm = dp.GetMetadata(dp.OwnerType)
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";
}
Dim fpm As FrameworkPropertyMetadata = TryCast(pm, FrameworkPropertyMetadata)
If fpm IsNot Nothing Then
AffectsArrange.Text = If((fpm.AffectsArrange), "Yes", "No")
AffectsMeasure.Text = If((fpm.AffectsMeasure), "Yes", "No")
AffectsRender.Text = If((fpm.AffectsRender), "Yes", "No")
[Inherits].Text = If((fpm.Inherits), "Yes", "No")
IsDataBindingAllowed.Text = If((fpm.IsDataBindingAllowed), "Yes", "No")
BindsTwoWayByDefault.Text = If((fpm.BindsTwoWayByDefault), "Yes", "No")
注解
如果没有此属性 true
,绑定更新默认为单向更新,具体取决于构造函数或等效 XAML 语法的默认行为 Binding 。
在现有元素中,通常会在报表状态和用户操作Selector.IsSelected可修改的依赖项属性的元数据中找到此属性true
。
此属性仅报告依赖项属性的默认绑定更新特征。 实例上设置为此属性的任何绑定都可以在本地设置 Mode 绑定的属性并更改此默认值。
任何派生类 PropertyMetadata 的属性通常在对象模型中定义为读写。 因此,在初始化实例后可以调整它们。 但是,在元数据作为调用RegisterAddOwner的一部分使用元数据后,或者OverrideMetadata,属性系统将密封用于传达元数据具体细节的元数据实例和属性现在被视为不可变的。 尝试在此元数据实例上设置此属性后IsSealedtrue
会引发异常。
XAML 文本用法
此类的成员通常不在 XAML 中使用。