1.绑定实现了数据驱动View.
2.绑定涉及到四个部分。源,路径,目标,目标属性。
- 绑定源:标识源属性所在的类型实例。
- 路径(path):指示源中的属性。也就是说,目标对象的数据从何而来。
- path属性值是源对象的属性名。如path=value.
- path可以指向属性的属性,可构建多层次的路径。
- 如果要绑定附加属性,应该在附加属性上放置圆括号。比如绑定附加属性DockPanel.Dock,则XAML中写法是:path=(DockPanel.Dock)
- 可以指向属性的索引器.比如path=value[0],这将绑定设置为属性对于的索引的属性。比如vaule是string,那么如果将path设置为value[0],那么对应的源改变的时候,不是改变整个value,而是改变value的第一个字符的值。
- 可以混合使用子属性和索引器。
- 在索引器内部,可以用多个逗号分割的索引器参数,可以用圆括号指定索引器参数的类型。比如path=value[(int)0,(int)10].
- 如果源为集合,可以使用斜杠(/)指定当前项。
- 可以用句点(.)来绑定当前源。
- 绑定目标:指接受相应更改的属性所在的实例。
- 目标属性:表示接受绑定运行值的目标。
这四个部分联动的方式是:绑定源发出属性更改的通知,从而驱动绑定执行。源属性作为绑定的输入,而绑定的输出被赋值给目标属性。
绑定方式:
绑定的语法是:要绑定的属性=“ {Binding ElementName/Source.....=, path=} ”
- 元素和元素之间的绑定。
<Button Name="Btn33">Btn</Button> <TextBlock Name="textBlock" Text="{Binding ElementName=Btn33, Path=Name,Mode=OneWay}"/>
上面这段XAML是把TextBlock的内容绑定到Button的名字上,
ElementName:指定了source。
Path :指定了显示的字符串从何而来,这里是button的名字。
Text :指定目标属性,也就是说TextBlock.Text这个属性的值是根据Button的名字来的。
TextBlock :这一行表现是绑定到TextBlock对象上的。
- 绑定到Source:绑定到某个对象,使用字段Source。source指向源对象的引用,就是提供数据的引用。
<TextBlock Text="{Binding Source={x:Static SystemFonts.IconFontFamily},Path=Source}"/>
使用关键字:Source。source指向绑定的对象.path:指向源对象的某个属性。
source={};这里也需要一个{}
- 绑定到DataContext:
当元素的绑定省略source字段的时候,WPF会检查元素的DataContext属性。如果属性值为NULL,就继续向上在元素树种查找第一个不是NULL的DataContext作为当前元素的Source.如果都是null,那么这个绑定将是无效的。
<TextBlock Text="{Binding Path=DataContext}"/>
这种不用写source=字段。