1. 程式人生 > >數據綁定(四)使用DataContext作為Binding的Source

數據綁定(四)使用DataContext作為Binding的Source

set ane context int 技術 blog ont href attach

原文:數據綁定(四)使用DataContext作為Binding的Source

DataContext屬性被定義在FrameworkElement類裏,這個類是WPF控件的基類,這意味著所有WPF控件都具備這個屬性,當一個Binding只知道自己的Path而不知道自己的Source時,它會沿著UI元素樹一路向輸的根部找過去,沒路過一個節點,就看看這個節點的DataContext有沒有指定的Path,如果有,就把這個對象作為自己的Source,看看例子,首先定義一個類

    class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
    }

XAML如下:

    <StackPanel>
        <StackPanel.DataContext>
            <local:Student Id="10001" Name="daijun" Age="20" />
        </StackPanel.DataContext>
        <TextBlock Background="LightBlue" Text="{Binding Path=Id}"></TextBlock>
        <TextBlock Background="LightBlue" Text="{Binding Path=Name}"></TextBlock>
        <TextBlock Background="LightBlue" Text="{Binding Path=Age}"></TextBlock>
    </StackPanel>

運行效果如下:

技術分享圖片

實際上DataContext對象是一個依賴屬性,依賴屬性有個重要特點就是當沒有為控件的某個依賴屬性顯示賦值時,控件會把自己容器的屬性值當作自己的屬性值,所以實際上,屬性值是沿著UI元素樹向下傳遞了

數據綁定(四)使用DataContext作為Binding的Source