// Create an item within a specified group,
// bound to a specified data field with the specified editor
private LayoutControlItem CreateItemWithBoundEditor(BaseEdit editor, object dataSource,
string dataMember, LayoutControlGroup parentGroup) {
editor.DataBindings.Add("EditValue", dataSource, dataMember);
LayoutControlItem item = parentGroup.AddItem(dataMember, editor) as LayoutControlItem;
return item;
}
private void CreateLayout() {
//Add First Name and Last Name items
LayoutControlItem itemFirstName = CreateItemWithBoundEditor(new TextEdit(), employeesSource,
"FirstName", layoutControl1.Root);
LayoutControlItem itemLastName = CreateItemWithBoundEditor(new TextEdit(), employeesSource,
"LastName", layoutControl1.Root);
// Move the Last Name to the right of the First Name
itemLastName.Move(itemFirstName, InsertTypes.Right);
// Add the Birthday group with a birthday editor inside
LayoutControlGroup birthdayGroup = layoutControl1.AddGroup("Birthday Information");
CreateItemWithBoundEditor(new DateEdit(), employeesSource, "BirthDate", birthdayGroup);
// Add a tab with three address fields
TabbedControlGroup tabbedGroup = layoutControl1.AddTabbedGroup();
LayoutControlGroup addressGroup = tabbedGroup.AddTabPage("Address Details");
string[] dataFields = new string[] { "Country", "City", "Address" };
foreach (string dataField in dataFields)
CreateItemWithBoundEditor(new TextEdit(), employeesSource, dataField, addressGroup);
// Add a tab with a photo
LayoutControlGroup groupPhoto = tabbedGroup.AddTabPage("Photo");
CreateItemWithBoundEditor(new PictureEdit(), employeesSource, "Photo", groupPhoto);
}
再次添加的時候如果需要先清除之前的item,代碼如下
layoutControlSelectBusiness.BeginUpdate();
layoutControlSelectBusiness.Controls.Clear();
layoutControlSelectBusiness.Root.Items.Clear();
再次添加item的代碼
layoutControlSelectBusiness.EndUpdate();
謝謝你提供的這篇代碼,幫我解決了layoutControl多列自動排版的問題, 關鍵代碼:
// Move the Last Name to the right of the First Name
itemLastName.Move(itemFirstName, DevExpress.XtraLayout.Utils.InsertType.Right);
再次表示感謝!