public XtraBinding(object DataSource, XtraBindingOperation XtraBindingOperation) { if (ItemAdapter == null) ItemAdapter = new ItemAdapter.DataTable.XBIADataTable(); _dataSource = DataSource; _bindingSource = new BindingSource(ItemAdapter.GetBindingListView(DataSource), XtraBindingOperation.ObjectCalculator); System.Type itemType = ItemAdapter != null ? ItemAdapter.AdaptedItemType : GetDataSourceCustomItemType(DataSource); _isCanEdit = itemType.GetInterfaces().Contains(typeof(System.ComponentModel.IEditableObject)); _isCanModify = itemType.GetInterfaces().Contains(typeof(IModifyableObjectProvider)); _isEditStatusProvided = itemType.GetInterfaces().Contains(typeof(IObjectStateProvider)); if (_isCanModify) { System.Reflection.MemberInfo memberInfo = itemType.GetMembers().First(p => p.Name == "ModifyableObject"); _isModifyedStatusProvided = memberInfo.DeclaringType.GetInterfaces().Contains(typeof(IObjectStateProvider)); _bindingSource.RemovingOld += new System.ComponentModel.AddingNewEventHandler(_bindingSource_RemovingOld); } xtraBindingOperation = XtraBindingOperation; if (xtraBindingOperation != null) { xtraBindingOperation.EndFill += new XtraBindingOperationEndFillHandler(xtraBindingOperation_EndFill); } EndEdit(); }
private static XtraBinding CreateXtraBindingSource(XOTableContext TableContext, IControllerProvider ControllerProvider, XtraBindingChildProperties ChildProperties) { object dataSource = ControllerProvider.GetDataSource(TableContext.XOTable); DataAvail.Data.DataAdapter.IDataAdapter dataAdapter = ControllerProvider.GetDataAdapter(TableContext.XOTable); DataAvail.XtraBindings.XtraBindingOperation oper = new DataAvail.XtraBindings.XtraBindingOperation(dataSource, dataAdapter, ControllerProvider.GetObjectCalculator(TableContext.XOTable)); XtraBinding xtraBinding = null; if (TableContext.ShownChildrenRelations.Count() > 0) { xtraBinding = new DataAvail.XtraBindings.XtraBindingContainer(dataSource, oper); foreach (XORelation rel in TableContext.ShownChildrenRelations) { DataAvail.XtraBindings.XtraBinding childBinding = CreateXtraBindingSource(rel.ChildTable.CreateTableChildContext(TableContext.Fields.First(p=>p.Name == rel.ParentField.Name)), ControllerProvider, new XtraBindingChildProperties( xtraBinding, rel.ParentTable.Name, rel.ParentField.Name, rel.ChildTable.Name, rel.ChildField.Name)); ((XtraBindingContainer)xtraBinding).Children.Add((XtraBindingChild)childBinding); } } else if (ChildProperties != null) { xtraBinding = new DataAvail.XtraBindings.XtraBindingChild(dataSource, oper, ChildProperties); } else { xtraBinding = new XtraBinding(dataSource, oper); } return xtraBinding; }
public XtraBindingContainer(object DataSource, XtraBindingOperation XtraBindingOperation) : base(DataSource, XtraBindingOperation) { }
public XtraBindingChild(object DataSource, XtraBindingOperation XtraBindingOperation, XtraBindingChildProperties XtraBindingChildProperties) : base(DataSource, XtraBindingOperation) { _xtraBindingChildProperties = XtraBindingChildProperties; }