快速構建Windows 8風格應用25 資料繫結

2021-09-06 18:20:40 字數 3045 閱讀 7522

原文:

快速構建windows 8風格應用25-資料繫結

本篇博文主要介紹如何將ui元素與資料進行繫結、資料繫結的方向、資料更改通知、資料轉換、資料繫結支援的繫結方案。

資料繫結是一種簡單方式來顯示資料,ui元素與資料物件之間的連線或繫結是允許資料在兩者之間流動的。另外建立了繫結且資料發生變化時,相應的ui元素會自動顯示變化。

從上面圖可以知道,每個繫結必須指定乙個源和乙個目標。

(依賴屬性)。

資料繫結引擎從binding物件獲取以下內容:

1)源物件和目標物件;

2)資料流的方向;

3)值轉換器;

例如:使用c#**和xaml將textbox的foreground屬性進行繫結。

xaml**:

<

textbox

x:name

="mytextbox"

text

="text"

foreground

=""/>

c#**:

mycolors textcolor = new mycolors();
textcolor.brush1 = new solidcolorbrush(colors.red);
mytextbox.datacontext = textcolor;
繫結是使用語法在xaml中建立的。源是通過設定textbox的datacontent屬性在**中設定的。

另外資料是會被繼承的。若我們在某個父元素上設定資料上下文,那麼其子元素將使用同一資料。我們可以通過設定binding.path屬性繫結到源物件的某個屬性。

屬性,用於確定資料流動的方式和時間。

三種型別的繫結:

1)onetime:繫結會在建立時使用源資料更新目標。

2)oneway:繫結會在建立時以及資料發生更改時使用源資料更新目標(預設模式)。

3)twoway:繫結會在目標和源中的任乙個發生更改時同時更新目標和源。

事件,該事件會告訴資料繫結引擎,源物件已經改變,方便更改目標值。

例如:

// create a class that implements inotifypropertychanged.
public

class mycolors : inotifypropertychanged

set
}
// notifypropertychanged will raise the propertychanged event,
// passing the source property that is being updated.
public

void notifypropertychanged(string propertyname)

}
}
介面,當brush1屬性更改時將觸發propertychanged事件通知目標物件以及更改。

當我們儲存的資料在ui介面顯示的時候,對使用者來講不友好時,可以將資料進行相應的轉換進行顯示。這時我們就需要乙個資料的轉換器了。

介面。例如:

// custom class implements the ivalueconverter inte***ce.
public

class datetostringconverter : ivalueconverter

// return the value to pass to the target.
return month;
}
// convertback is not implemented for a oneway binding.
public

object convertback(object

value, type targettype,

object parameter, string language)
#endregion
}
當從源物件傳遞資料時,繫結引擎會呼叫convert並將返回的資料傳遞歸目標。

當從目標傳遞資料時,繫結引擎會呼叫convertback並將返回的資料傳遞歸源。

xaml**中設定converter:

<

usercontrol.resources

>

<

local:datetostringconverter

x:key

="converter1"

/>

usercontrol.resources

>

...
<

textblock

grid.column

="0"

text

="}"

/>

(該引數允許為轉換邏輯傳遞乙個引數)。

,它將停止資料傳輸。

方案c#

繫結到物件

可以為任何物件

從繫結物件中獲取屬性更改更新

介面繫結到集合

從繫結集合中獲取集合更改更新

實現支援繫結的集合

(屬於object)。繫結到通用ilist(of t)ienumerable(of t)的操作不受支援

實現支援集合更改更新的集合

實現支援增量載入的集合

快速構建Windows 8風格應用10 裝置方向

原文 快速構建windows 8風格應用10 裝置方向 本篇博文主要介紹常用支援windows 8作業系統裝置的方向 如何獲取當前裝置方向 displayproperties類。常用支援windows 8作業系統裝置的方向 在我們常用的裝置當中,windows 8是通過什麼來監控裝置方向呢?答案是方...

快速構建Windows 8風格應用18 基礎控制項I

原文 快速構建windows 8風格應用18 基礎控制項i 本篇博文主要介紹windows 8風格應用開發中常用的幾種基礎控制項。progressring progressring控制項常見的效果圖 如何在xaml 中宣告progressring控制項呢?如下 progressring控制項包含is...

快速構建Windows 8風格應用18 基礎控制項I

本篇博文主要介紹windows 8風格應用開發中常用的幾種基礎控制項。progressring progressring控制項常見的效果圖 如何在xaml 中宣告progressring控制項呢?如下 progressring控制項包含isactive屬性,該屬性控制progressring控制項是...