2011-06-22 171 views
1

我最近在学silverlight,发现它很难理解依赖属性系统的本质。我可以在Silverlight的依赖属性和javascript的对象属性之间做一个比喻吗?它们都是通过一个类似散列表的数据结构实现的,并且可以在运行时添加/删除,对吗?wpf/silverlight与javascript对象属性中的依赖属性

回答

0

将DependencyProperties视为指针或地址。不是将属性设置为值,而是将其设置为指向另一个值的地址。

例如,不是说TextBox的文本等于SomeValue,而是说它指向ViewModel中的字符串值。或者它指向某个对象的Name属性。或者指向一个指定的ComboBox的SelectedText。当然,你总是可以说,它直接指向“someValue中”的字符串

<TextBox Text="{Binding SomeProperty}" /> 
<TextBox Text="{Binding SomeObject.SomeProperty}" /> 
<TextBox Text="{Binding ElementName=MyComboBox, Path=SelectedText}" /> 
<TextBox Text="SomeValue" /> 

基本上,它是依赖于一些其他值的属性。

1

你是不对的,WPF depdency properties不是动态的,对象有一组依赖属性,它们存储值的方式可能是一样的(我认为它更像是一个字典结构),但你不能只拥有一个新的属性苍蝇。然而,有一种叫做attached properties的东西,它允许添加属性。

我建议你阅读那些我链接到的文章,他们应该很好地解释一切。