留在屏幕上的字

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  在WPF里面,FrameworkElement是WPF控件的基类,而DataContext属性就被定义在这个类里面,所以说所有的WPF控件都有这个属性。WPF的UI是树状的,每个节点都是控件,所以每个节点都有DataContext属性。如果一个Binding找不到自己的Source那他就会沿着这个UI树一直往上找,直到找到和Path对应的那个属性,如果到最外层也没找到,那就没有数据源。

XMAL代码

<Window x:Class="使用DataContext作为Binding的源.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:使用DataContext作为Binding的源"
Title="MainWindow" Height="350" Width="525">
<StackPanel Background="LightBlue">
<StackPanel.DataContext>
<local:User Name="lj"/>
</StackPanel.DataContext>
<Grid>
<StackPanel>
<TextBox Text="{Binding Path=Name}" Margin="5"/>
</StackPanel>
</Grid>
</StackPanel>

</Window>

User类

class User
{
public string Name
{
get; set;
}
}

posted on 2013-06-16 22:36  简单点,再简单点  阅读(1498)  评论(0编辑  收藏  举报
                                                                              多交流,多思考