PropertyGrid中的屬性讀取

2021-10-23 11:04:23 字數 3372 閱讀 6744

public

class

basesettings

//settingfilename is a file whose extension is .xml

private

string settingfilename

else

.xml"

, name));

}}}public

basesettings

(string settingname)

//build up a dataset ——— the introduction of dataset are below the code

//build up four datatable,which are int,double,bool,string

private

void

setupdataset()

; tb.columns[1]

.allowdbnull =

false;}

}public

virtual

bool

load()

public

virtual

bool

load

(string filepath)

catch

(exception ex)

dataset dstmp =

newdataset()

;try

catch

(exception ex)

//合併兩個dataset

ds.merge

(dstmp)

;updatefromdatabase()

;return

settingstoproperties

(this

,this);

}if(file.

exists

(filepath)

)catch

(exception ex)

//合併兩個dataset

ds.merge

(dstmp)

;updatefromdatabase()

;return

settingstoproperties

(this

,this);

}return

false;}

//write the contents of src to dst

private

void

decompressstream

(stream src,

stream dst)}}

//作用: 將dataset裡的資料同步到4個dictionary裡

public

void

updatefromdatabase()

tb = ds.tables[stringtablename]

;foreach

(datarow row in tb.rows)

tb = ds.tables[booltablename]

;foreach

(datarow row in tb.rows)

tb = ds.tables[doubletablename]

;foreach

(datarow row in tb.rows)

}//將引數讀到屬性中

public

static

bool

settingstoproperties

(basesettings settings,

object obj)})

;return res ==1;

}//獲取obj裡面的所有特性屬性

public

static list

getconfigproperties

(object obj)

}foreach

(propertyinfo pi in obj.

gettype()

.getproperties()

)}return pis;

}//將pi這個屬性的值在setting中的值更新到pi中

public

static

bool

settingtoproperty

(basesettings settings,

string parentname,

object obj,

propertyinfo pi)

", parentname, pi.name);if

(pi.propertytype ==

typeof

(int))

}else

if(pi.propertytype ==

typeof

(double))

}else

if(pi.propertytype ==

typeof

(string))

}else

if(pi.propertytype ==

typeof

(bool))

}return

false;}

//在對應列表中找paraname的

public

int?

getintvalue

(string paraname)

public

double

?getdoublevalue

(string paraname)

public

string

getstrin**alue

(string paraname)

public

bool

?getboolvalue

(string paraname)

}

dataset類是ado.net中最核心的成員之一(ado.net是.net framework sdk中用以運算元據庫的總稱)。dataset可以看作是乙個資料容器,從資料庫總抽取的資料可以存放在dataset裡面,也就相當與乙個快取區。

各種.net開發平台開發語言開發資料庫應用程式,一般都不會直接對資料庫進行操作,而是先完成資料連線通過資料介面卡填充dataset的物件,然後客戶端在通過讀取dataset來獲取資料;相反也是一樣,若是更新資料,是先對dataset進行更新,最後同步dataset和資料庫。

dataset有三大特性:

dataset結構:

dataset——datatable——row colunm

c 在PropertyGrid上顯示類的屬性

當我們使用propertygrid控制項時,平時用的都是常見的型別如 int,string,bool通過如下 可以將這個類的屬性顯示在propertygrid public partial class form1 form public class student set private int s...

PropertyGrid中的列舉顯示為中文

propertygrid中的列舉顯示為中文 在系統開發中,經常會使用propertygrid來修改或者展示某個物件的屬性,如果類中定義了列舉,在展現的時候缺省會展示列舉的項或者列舉值,但是這並不是我們想要的。使用者使用的時候並不清楚該項代表的意思。之前介紹過列舉顯示中文的一篇文章,大家可以看下,列舉...

WPF中實現PropertyGrid的三種方式

由於wpf中沒有提供propertygrid控制項,有些業務需要此類的控制項。這篇文章介紹在wpf中實現propertygrid的三種方式,三種方式都是俺平時使用時總結出來的。第一種方式 使用windowsform的propertygrid控制項。用過wpf的童鞋都曉得,可以通過windowsfor...