1、依赖属性
依赖属性:自己没有值,通过绑定的数据源 来获取值,依赖别人来传值,依赖属性的对象称为依赖对象。
几种应用依赖属性的场景:
1. 希望可在样式中设置属性。
2. 希望属性支持数据绑定。
3. 希望可使用动态资源引用设置属性。
4. 希望从元素树中的父元素自动继承属性值。
5. 希望属性可进行动画处理。
6. 希望属性系统在属性系统、环境或用户执行的操作或者读取并使用样式更改了属性以前的值时报告。
7. 希望使用已建立的、WPF 进程也使用的元数据约定,例如报告更改属性值时是否要求布局系统重新编写元素的可视化对象。
依赖对象创建时并不包含存储数据空间。WPF中必须使用依赖对象作为依赖属性的宿主。
<StackPanel>
<TextBox x:Name="txtbox1" Text="{Binding Title1,Mode=TwoWay}"/>
<TextBox x:Name="txtbox2" Text="{Binding Title2,Mode=TwoWay}"/>
</StackPanel>
2、附加属性
附加属性就是自己没有这个属性,在某些上下文中需要就被附加上去。比如TextBox的Grid.Row属性,如果我们定义TextBox类时定义一个Row属性是没有意义的,因为我们并不知道一定会放在Grid里,这样就造成了浪费。
<TextBox Grid.Row="1"></TextBox>
<TextBox Grid.Row="2"></TextBox>