WPF学习笔记:数据绑定与DataContext

61 篇文章 5 订阅


http://www.cnblogs.com/ceachy/archive/2012/10/30/Binding_DataContext.html



方法一:

  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"
         <span style="color: #ff0000;">xmlns:c="clr-namespace:WpfAppDemo1"
</ span >        Title="MainWindow" Height="350" Width="525">
     < Grid  Name="grid1">
< span  style="color: #ff0000;">        < Grid.Resources >
             < c:MyData  x:Key="myData1" />
         </ Grid.Resources >
         < Grid.DataContext >
             < Binding  Source="{StaticResource myData1}" />
         </ Grid.DataContext >
</ span >        < TextBox  Height="23" HorizontalAlignment="Left" Margin="123,30,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Text="{Binding Path=<span style="color: #ff0000;">MyName</ span >}" />
     </ Grid >



方法二:可以直接在xaml页面后台的构造函数中直接设置DataContext,例如

        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = new MainWindowViewModel();
        }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值