人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

數據綁定(二)(翻譯)

數據綁定(二)(翻譯)

更新時間:2022-06-06 文章作者:未知 信息來源:網絡 閱讀次數:

改變屬性的注意事項:

現在我們知道了數據綁定,下面我們看看對象如何支持自動屬性改變. 當我們在程序中改變對象的數據,很難讓我們知道控件的改變.UI和對象可以得到我們看不到的正確數據.

我們需要的是對象在任何時間提醒UI,屬性值的改變.而這些我們可以通過事件的聲明來

體現,當數據綁定時,數據綁定是根據事件的的屬性改變,這些屬性是對象的屬性名稱.

舉例:我們剛才的ORDER類定義了一個ID屬性,當數據綁定到控件時,綁定就開始傾聽

ID屬性改變這個事件.ID改變事件發生,則相應的對象也改變.

我們可以通過聲明這些事件來說明我們的ORDER類:

Public Class Order
Public Event IDChanged As EventHandler
Public Event CustomerChanged As EventHandler
這些事件通過EventHandler來聲明.這就需要數據綁定知道這些事件,如果我們不聲明

這些事件的話,當數據綁定時候就會產生例外.在WINDOWS窗口中EVENTHANDLE

是一個標準的事件模型.這些事件是通過sender和EVENT來定義的.利用事件聲明,我們確保

屬性變化時,事件也要產生.SET中是最佳時期,我們利用ID屬性來實現一下:

Public Property ID() As String
Get
Return mID
End Get
Set(ByVal Value As String)
mID = Value
RaiseEvent IDChanged(Me, New EventArgs())
End Set
End Property
我們建立一個觸發器來捕捉ID屬性的任何時候任何地方的變化,很多的類是通過SET方法來給變量付值的.這就需要我們及時的事件來出發這些值的改變.舉個比較好的例子,ORDER類有很多的LINEITEM連接對象,先讓我們看看LINEITEM類的變量聲明:

Public Class LineItem
Public Event ProductChanged As EventHandler
Public Event QuantityChanged As EventHandler
Public Event PriceChanged As EventHandler
Public Event AmountChanged As EventHandler

Private mProduct As String
Private mQuantity As Integer
Private mPrice As Double
有四個事件,但只有三個有變量, Amount 屬性通過數量和價格來計算.

Public ReadOnly Property Amount() As Double
Get
Return mQuantity * mPrice
End Get
End Property
這是一個只讀屬性,但我們可改動.事實上其他價格數量的改變它也隨之改變,因此我們需要事件來捕捉它,例如價格改變:

Public Property Price() As Double
Get
Return mPrice
End Get
Set(ByVal Value As Double)
mPrice = Value
RaiseEvent PriceChanged(Me, New EventArgs())
RaiseEvent AmountChanged(Me, New EventArgs())
End Set
End Property
由于價格的改變,我們不光做PRICECHANGED事件,還要觸發事件,這樣才能使AMOUNT屬性改變的正確.這些代碼是我們能夠及時發現數據變動的事件.

那就是說我們的AMOUNTCHANGED事件不要嚴格,當數據綁定到對象屬性上時,數據綁定是傾聽PROPERTYCHANGED事件.一旦這些時間觸發,對象的控件就會更新.

換句話說,如果窗體控件綁定到PRICE和AMOUNT屬性上,窗體觸發的PRICECHANGED

事件,不光是使PRICE屬性更新,同樣AMOUNT屬性也得到了更新.

如果我們僅僅綁定AMOUNT,UI由于沒出發AMOUNTCHANGED事件使得我們的UI不能正常工作,正是這個原因,我們需要為每個屬性聲明PROPERTYCHANGED事件.

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 拉萨市| 濮阳县| 安吉县| 霍邱县| 集安市| 青河县| 灵寿县| 明光市| 安溪县| 玉溪市| 乐陵市| 莱州市| 玛纳斯县| 乌苏市| 江门市| 三门峡市| 洪泽县| 庆城县| 德安县| 芮城县| 蓬溪县| 昔阳县| 江达县| 莆田市| 福贡县| 东海县| 平阳县| 荆门市| 新建县| 汝南县| 夏津县| 鄂伦春自治旗| 历史| 临西县| 曲阳县| 广汉市| 信宜市| 广德县| 阿荣旗| 碌曲县| 雅安市|