WPF学习笔记:(一)数据绑定与DataContext
2012-10-30 20:27
411 查看
前一段半心半意地学习了一下WPF,是从控件入手的,发现巨容易,甚至有些无趣。昨天面试,被问到了很多WPF的特性的东西,直接就傻了。于是乎,还是要去深刻的学习一下WPF。刚刚试了一下数据绑定,几次都没有成功,后来发现是DataContext搞得鬼。
我暂时有两点结论:
1、如果没有显式设置上下文,那么数据上下文就是界面;
例如下边代码,textBox1绑定textBlock2的Text属性的时候,数据上下文就是Grid或者Grid父容器的DataContext,上下文中能用到就是界面元素的属性。
2、可以在任何时候显式设置上下文,但是设置上下文以后绑定才会有效。
设置方法是ctlId.DataContext = xxx,例如grid1.DataContext = this;
3、可以在XAML中设置上下文
在XAML中设置DataContext,有三点要设置:1)引用namespace;2)设置Resources;3)设置DataContext。如下代码所示:
到目前为止,我只知道这三种设置设置数据上下文的方式。关于数据绑定的内容,我还需要研究:)
我暂时有两点结论:
1、如果没有显式设置上下文,那么数据上下文就是界面;
例如下边代码,textBox1绑定textBlock2的Text属性的时候,数据上下文就是Grid或者Grid父容器的DataContext,上下文中能用到就是界面元素的属性。
<Grid> <TextBox Height="23" HorizontalAlignment="Left" Margin="123,30,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Text="{Binding Path=MyValue}" /> <TextBlock Height="23" HorizontalAlignment="Left" Margin="54,77,0,0" Name="textBlock2" Text="Luke" VerticalAlignment="Top" /> </Grid>
2、可以在任何时候显式设置上下文,但是设置上下文以后绑定才会有效。
设置方法是ctlId.DataContext = xxx,例如grid1.DataContext = this;
3、可以在XAML中设置上下文
在XAML中设置DataContext,有三点要设置:1)引用namespace;2)设置Resources;3)设置DataContext。如下代码所示:
<Window x:Class="WpfAppDemo1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:c="clr-namespace:WpfAppDemo1" Title="MainWindow" Height="350" Width="525"> <Grid Name="grid1"> <Grid.Resources> <c:MyData x:Key="myData1" /> </Grid.Resources> <Grid.DataContext> <Binding Source="{StaticResource myData1}" /> </Grid.DataContext> <TextBox Height="23" HorizontalAlignment="Left" Margin="123,30,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Text="{Binding Path=MyName}" /> </Grid>
到目前为止,我只知道这三种设置设置数据上下文的方式。关于数据绑定的内容,我还需要研究:)
相关文章推荐
- WPF学习笔记:(一)数据绑定与DataContext
- wpf学习笔记-数据绑定功能总结
- WPF学习笔记(一):数据绑定之元素到元素绑定
- WPF and Silverlight 学习笔记(二十二):使用代码实现绑定、绑定数据的验证
- WPF学习笔记之数据绑定
- WPF学习笔记一 依赖属性及其数据绑定
- [转]WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组
- WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组
- wpf学习笔记-数据绑定功能总结
- 【转载】wpf学习笔记数据绑定9
- WPF学习笔记:数据绑定与DataContext
- WPF学习笔记:(二)数据绑定模式与INotifyPropertyChanged接口
- WPF学习笔记<二>数据绑定
- WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组
- WPF学习笔记 - 数据绑定(在代码中)
- WPF学习笔记(04) - 简单的控件和数据绑定
- WPF学习笔记:ComboBox的数据绑定
- WPF and Silverlight 学习笔记(二十二):使用代码实现绑定、绑定数据的验证
- 黑马程序员--wpf学习笔记五----说说ListBox\DataGrid与数据绑定的那点事
- WPF and Silverlight 学习笔记(二十):WPF数据绑定概述