程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Data Context 數據上下文

Data Context 數據上下文

編輯:C#入門知識

我們通過設置Binding對象的Source屬性可以實現基本的數據綁定,
            //Binding b = new Binding("Value");
            //b.Source = slider1;
            //b.Mode = BindingMode.TwoWay;
            //textBox1.SetBinding(TextBox.TextProperty, b);
但是現在我想再把slider的width屬性綁定到textBox的width屬性,那麼我如果用剛才的方法寫,就應該是:
            //Binding b2 = new Binding("Width")
            //b2.Source = slider1;
            //b2.Mode = BindingMode.TwoWay;
            // textBox1.SetBinding(TextBox.WidthProperty,b2);
那麼我的每個綁定對象都要設置一次綁定源,這顯然是冗余的,在綁定對象比較多的情況下尤其繁瑣。
有沒有什麼更好的方式呢?
silverlight給我們提供了外一種設置數據源的方式,通過UI元素的數據上下文Data Context屬性來指定數據源。
我們只需在後台寫入: textBox1.DataContext = slider1;即可。
當然我還要在前台頁面的XAML文件中添加:
<TextBox Height="23" HorizontalAlignment="Left" Margin="135,48,0,0" Name="textBox1"  Text="{Binding Value,Mode=TwoWay}" VerticalAlignment="Top" Width="{Binding Width,Mode=TwoWay}" />

OK,我們運行下看看:

 
由此可見,textBox的Text和width屬性均被綁定了過來。
那麼需要我們記住的一點是:
一旦為一個UI元素指定了DataContext屬性,則其所有子元素都將繼承該屬性,與其子元素關聯的所有數據綁定在沒有另行制定Souce 和DataContext的情況下,都將默認使用該屬性指定的對象作為綁定源。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved