91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Silverlight數據綁定引擎

發布時間:2020-06-16 02:06:03 來源:網絡 閱讀:549 作者:windows_phone 欄目:開發技術

 

 Silverlight數據綁定引擎

 

 

1Silverlight中數據綁定基于Silverlight數據綁定引擎

2)該綁定引擎實現從UI元素CLR源數據對象之間的關聯,創建并維護兩者之間的數據通道。

3)通過該綁定引擎,將CLR源數據對象包含的數據反映到UI元素,并可以將UI中對數據的更改反饋回源數據對象。

 

一次數據綁定包含兩個最基本的要素:

 

(1)       綁定目標(FrameworkElement依賴項屬性

(2)       綁定源(對象的屬性)

 

 綁定源

即數據的來源,可以是任意的CLR對象,通常實際需要的是該對象的某一個特定屬性.

綁定目標

顯示數據的UI元素,可以是任何FrameworkElement類型的對象,實際綁定的也是該對象的某一個特定屬性

綁定模式

主要決定數據流的方向,可以是單向雙向

值轉換器

需要時用以進行數據類型或格式的轉換

 綁定引擎所屬的這些信息,主要有System.Windows.Data 中的Binding對象來提供。

 

以下是Binding對象的幾個重要屬性:

 

 

1path

指定綁定源對象中用以提供數據的屬性,通過屬性路徑語法來表示

2Mode

指示數據綁定模式,可以為OneTimeOneWayTwoWay

3Converter

值轉換器對象,需要時設置,必須是一個IValueConverter接口類型的對象

4)設置綁定源

有四種方法:

1、  Source:表示綁定源對象。

2、  RelativeSource:通過指定綁定源相對于綁定目標的位置來標識綁定源

3、  ElementName:當綁定源也是UI對象時,獲取或設置其名稱用以標識綁定源

4、  通過設置UI元素的DataContext屬性來指定綁定源,上下文的表示方法

綁定目標通過UI元素的SetBinding方法來進行設置(當然也可以在XAML中直接指定)。

  三種模式的數據綁定。

 

OneTime

單向一次綁定,在綁定創建時使用源數據更新目標,適用于只顯示數據而不進行數據的更新(只在綁定創建時更新一次數據源,之后綁定目標的顯示將與綁定源的變化無關)

OneWay

單向綁定,在綁定創建時或者源數據發生變化時更新到目標,適用于顯示變化的數據(綁定創建時及之后綁定源的每一次變化都會更新綁定目標。)

TwoWay

雙向綁定,在任何時候都可以同時更新源數據和目標。(數據在綁定源與綁定目標之間可相互流動,源與目標任一方的變化都會立即通知到對方并引發對方的更新,雙方是實時同步的。)

注意:當選擇OneWayTwoWay模式時,為了是綁定源的變化能實時通知到綁定目標,源對象中必須實現INotifyPropertyChanged接口。也就是綁定目標的顯示與綁定源同步,必須滿足兩個條件:

(1)       選擇OneWayTwoWay模式

(2)       綁定源實現INotifyPropertyChanged接口

public class Employee:INotifyPropertyChanged

{

/*public int Number { get; set; }   //員工號

public string Name { get; set; }  //姓名

public string Sex { get; set; }    //性別

public int BirthYear { get; set; } // 出生年份*/

public event PropertyChangedEventHandler PropertyChanged;

private int number;

public int Number

{

get { return number; }

set

{

this.number = value;

INotifyPropertyChanged("Number");

}

}

private string name;

public string Name

{

get { return name; }

set

{

this.name = value;

INotifyPropertyChanged("Name");

}

}

//sex birthYear相同代碼

private void INotifyPropertyChanged(string propertyName)

{

//throw new NotImplementedException();

if (PropertyChanged != null)

{

PropertyChanged(this,new PropertyChangedEventArgs(propertyName));

}

}

}

 

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴彦县| 昌图县| 马公市| 宜州市| 西贡区| 吴旗县| 通海县| 郁南县| 邓州市| 元氏县| 馆陶县| 黄梅县| 宜春市| 柏乡县| 新邵县| 阿鲁科尔沁旗| 买车| 郸城县| 改则县| 舟山市| 嘉黎县| 德令哈市| 古蔺县| 长垣县| 苏尼特左旗| 增城市| 定兴县| 颍上县| 濉溪县| 齐齐哈尔市| 新化县| 菏泽市| 饶河县| 吉木萨尔县| 莎车县| 广宁县| 荣成市| 扎兰屯市| 沙雅县| 田阳县| 乌拉特后旗|