DevExpress的GridView,為每行動態綁定不同的RepositoryItemLookUpEdit


有時需要動態為RepositoryItemLookUpEdit綁定數據源,比如聯動選擇的場景或者我們僅僅是需要一個下拉選擇框而
並不想要GridView的列與RepositoryItemLookUpEdit的數據源有強綁定關系。但是GridView的列在綁定事先定義RepositoryItemLookUpEdit后是針對所有行生效的。
基於以上原因,使得在中途如果再為RepositoryItemLookUpEdit.DataSource賦與新的數據源,則會導值已經選擇的其他行的此列值被置為空,
或者出現無法彈出RepositoryItemLookUpEditView。
解決以上問題的方法是為每個GridView的行都創建一個RepositoryItemLookUpEdit並在創建后為它綁定新的數據源。如下:

 1                 gridView2.CustomRowCellEditForEditing += (x, y) =>
 2                 {
 3                     if (y.Column.FieldName != "materiaGoodsid")
 4                         return;
 5                     DevExpress.XtraGrid.Views.Grid.GridView gv = sender as DevExpress.XtraGrid.Views.Grid.GridView;
 6                     DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit repositoryItem = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit();
 7                     y.RepositoryItem = repositoryItem;
 8                     string barcode = Convert.ToString(gridView2.GetFocusedDataRow()["cptm"]).Trim();
 9                     if (barcode == null)
10                         return;
11                     repositoryItem.DisplayMember = "cptm";
12                     repositoryItem.ValueMember = "cptm";
13                     repositoryItem.DataSource = new jiben.SubstituteAggregate().GetComplianceListByBarCode(barcode);
14                     repositoryItem.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
15                     //從列表中選擇項后,綁定一個選值改變事件,以便於把列表中的其他列的值賦與gridView2中需要的列
16                     repositoryItem.EditValueChanged += (m,n)=> {
17                         DataRow dr = gridView2.GetFocusedDataRow();
18                         var materiaObject = (m as DevExpress.XtraEditors.LookUpEdit).GetSelectedDataRow();
19                         dr["materiaName"] = materiaObject.GetType().GetProperty("cpmc").GetValue(materiaObject);
20                     };

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM