DataGrid 資料項更新並保持多選

2022-08-05 09:42:21 字數 810 閱讀 6027

datagrid繫結的後台資料來源,對於資料來源更新的情況,如,某些資料的某些字段需要更新,若直接列改舊資料來源a為新的資料來源的源b,顯示的資料沒有問題,但有乙個問題就是介面的原先的選擇項,多選或單選,便不會保持,針對需要保持多選項的情況,有以下兩種方案:

1     篩選出需要更新的項,並不移除,只需要挨個對其所有屬性賦值即可,多選項可以保持,但問題是需要對額外新增merge類,即如何對兩個物件進行賦值;

2     使用乙個中間類:

如 observablecollection需要更改為observablecollection>,而entitywrap的定義簡單如下:

public

class entitywrap:inotifypropertychanged

private

t _entity;

public

t entity

set }

public

event

propertychangedeventhandler propertychanged;

private

void raisechanged(string

name)

}

ui上繫結需要修改為 這樣。這樣對於需要更新的entity直接賦值為新的物件即可,而不會改變ui上繫結物件的引用,即不會丟失多選狀態。

方案1 對於實體型別簡單的情況下,比較方便,但當屬性太多時,不得不採用反射賦值的方式,而反射的效能+可以需要更新的資料項較多時,效能可能難以忍受。方案2使用額外的物件來保持ui上的多選操作,效能高,相應的記憶體占用也稍高。

12 3 8 刪除資料項

共享物件寫入磁碟後,其數值便被儲存。如果開啟共享物件,修改其中的一些專案,則未被操作的專案將會被延續儲存。例如,下面的 在磁碟上建立了乙個包含五個資料專案的資料共享物件 如果在另乙個程式中開啟該資料共享物件,並修改其中的兩個資料專案,另外新建乙個專案。var shareobj sharedobjec...

datagrid連線資料庫並顯示及更新

匯出資料到excel 更新datagrid資料 dim cbuilder as new sqlcommandbuilder adapter 建立乙個commandbuilder物件 adapter.updatecommand cbuilder.getupdatecommand 為資料介面卡adapt...

Yii框架擴充套件JDataItem 資料項元件

yii框架擴充套件jdataitem 資料項元件 配置詳細說明 繼承自cwidget類庫 屬性名 labelname 說明 標籤名稱 屬性名 htmloptions 說明 輸入控制項html選項值 屬性名 erroroptions 說明 錯誤提示html選項 屬性名 labelhtmloptions...