c 自定義型別的DataBindings

2022-01-28 18:53:08 字數 1241 閱讀 9511

自定義型別textboxex,擴充套件了textbox,增加了乙個屬性keytext來儲存後台的值(tag已另作它用)。

程式裡面需要將keytext和datatable的某個列繫結起來。

如果是textbox,只需要簡單處理即可:

txt.databindings.add("

text

", dt, colname, false, datasourceupdatemode.onpropertychanged);

如此,即可實現textbox和datatable列的繫結,無論哪乙個有修改,都會自動作用到另乙個。

現在繫結的物件變成擴充套件的自定義控制項textboxex下的自定義屬性keytext,如上的繫結方式試過了,沒有效果。即改變textboxex的keytext值,相應的datatable裡面的列下的值不會改變。這是怎麼回事呢,問題的關鍵在後面的那句datasourceupdatemode.onpropertychanged上,到底什麼時候會觸發這個事件,又到底修改keytext值的時候有沒有觸發這個事件呢。

原因沒找到,但是應該是沒有觸發上面的事件。

解決方案有兩種,第一種是我覺得比較挫的招,曲線解決。

這裡的datasourceupdatemode下還有兩個選項,乙個是never,還有乙個是onvalidation。never沒什麼功夫可做,可以在onvalidation上下手。

**:

public

class

textboxex : textbox

set }

}}

在keytext的set裡面加上onvalidating,手動觸發驗證事件。方案可行,只是感覺有點小挫。

第二招是武林正派,從onpropertychanged上面下功夫。

**:

public

class

textboxex : textbox, inotifypropertychanged

set }

}protected

void onpropertychanged(string

name)

}}

繼承inotifypropertychanged,實現onpropertychanged,頓感高富帥了,有木有。

當然,上面兩種,在繫結的時候要分別選擇datasourceupdatemode.onvalidation和datasourceupdatemode.onpropertychanged。

C自定義型別

一 自定義型別基本概念 1 結構體 結構體就是將任意多個內建型別變數包含在一起形成的乙個結構,結構特也可以巢狀定義,不能在內部定義自己結構的變數,因為是不完整的型別,但是可以定義指向自己型別的指標,這也是鍊錶的原理,其定義形式如下 struct a 2 列舉 列舉型別是由一些項組成的型別,具體看 列...

c語言 自定義型別

struct stu 分號不能丟 匿名結構體型別 struct x struct a 20 p p x 非法的操作,上面倆種完全是不同的宣告 struct node 結構體的自引用 struct node n1 null 直接初始化 struct node n2 null 結構體巢狀初始化 先來看下...

C語言自定義型別

在學習c語言的時候,它有很多的自定義型別,例如 結構體,列舉,聯合。這些型別在我們的日常使用的時候,或多或少的都會遇見到,下面就系統的介紹一下這幾種型別。一.結構體 1.結構體型別的宣告 通俗點來說,結構就是一些值的集合,這些值稱為成員變數,結構體的每個成員可以是不同型別的成員變數。如下所示 str...