Shi*_*mmy 58 .net wpf binding dependency-properties binding-mode
在WPF中Binding.Mode
,选择默认值时,它取决于绑定的属性.
我正在寻找一些列表或一些约定或任何信息的各种控件的默认值.
我的意思是TwoWay
,默认情况下属性是什么等等.任何链接,想法,想法,甚至咆哮都很受欢迎!
Lar*_*ens 68
与UpdateSourceTrigger类似,Mode属性的默认值因每个属性而异.用户可编辑的属性,如
TextBox.Text
,ComboBox.Text
,MenuItem.IsChecked
,等,都有TwoWay
它们的默认模式的价值.要确定默认值是否为TwoWay
,请查看属性的"依赖项属性信息"部分.如果将其BindsTwoWayByDefault
设置为true,则属性的默认Mode值为TwoWay
.要以编程方式执行此操作,请通过调用获取属性的属性元数据,GetMetadata
然后检查BindsTwoWayByDefault
属性的布尔值.
资料来源:http://blogs.msdn.com/wpfsdk/archive/2006/10/19/wpf-basic-data-binding-faq.aspx
最安全的方法是始终明确您希望从绑定中获得什么样的绑定模式.
akj*_*shi 10
这是一种查找DP支持的默认模式的方法 -
.NET Reflector是你的朋友.使用反射器,搜索
TextBox
并查看静态构造函数(.cctor()
)的源代码.在这里,您将能够找到用于注册TextProperty
DP 的代码:Run Code Online (Sandbox Code Playgroud)TextProperty = DependencyProperty.Register ( "Text", typeof(string), typeof(TextBox), new FrameworkPropertyMetadata ( string.Empty, FrameworkPropertyMetadataOptions.Journal | FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, new PropertyChangedCallback(TextBox.OnTextPropertyChanged), new CoerceValueCallback(TextBox.CoerceText), true, UpdateSourceTrigger.LostFocus ) );
请注意,参数传递给Register方法,指示默认的绑定模式:
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault
.如果使用反射器来查看TextBlock的Text DP的注册,您将看到没有传递这样的值,在这种情况下,我们假设绑定是默认的一种方式.
摘自Bea Stollnitz的帖子:如何在模板中更新显式绑定?
虽然拥有一些重要的DP列表会非常有帮助.
归档时间: |
|
查看次数: |
40382 次 |
最近记录: |