public void ModifyInstanceGridView(XpandXafGridView masterGridView, int rowHandle, int relationIndex, IModelListView masterModelListView, List <IMasterDetailRule> masterDetailRules) { var modelDetailRelationCalculator = new ModelDetailRelationCalculator(masterModelListView, masterGridView, masterDetailRules); bool isRelationSet = modelDetailRelationCalculator.IsRelationSet(rowHandle, relationIndex); if (isRelationSet) { IModelListView childModelListView = modelDetailRelationCalculator.GetChildModelListView(rowHandle, relationIndex); Window window = _xafApplication.CreateWindow(TemplateContext.View, null, true, false); ListView listView = GetListView(modelDetailRelationCalculator, rowHandle, relationIndex, childModelListView); var detailXafGridView = (XpandXafGridView)masterGridView.GetDetailView(rowHandle, relationIndex); ((XpandGridListEditor)listView.Editor).CustomGridViewCreate += (o, eventArgs) => { ((XpandGridListEditor)o).DataSource = detailXafGridView.DataSource; eventArgs.Handled = true; eventArgs.GridView = detailXafGridView; eventArgs.GridControl.DataSource = detailXafGridView.DataSource; }; EventHandler[] listViewOnControlsCreated = { null }; listViewOnControlsCreated[0] = (sender, args) => { detailXafGridView.MasterFrame = masterGridView.MasterFrame ?? _masterFrame; detailXafGridView.Window = window; detailXafGridView.GridControl = masterGridView.GridControl; listView.ControlsCreated -= listViewOnControlsCreated[0]; }; listView.ControlsCreated += listViewOnControlsCreated[0]; ((PropertyCollectionSource)listView.CollectionSource).MasterObject = masterGridView.GetRow(rowHandle); window.SetView(listView); } }
protected override void OnViewControlsCreated() { var modelListViewGridViewOptions = ((IModelListViewGuessAutoFilterRowValuesFromFilter)View.Model); if (modelListViewGridViewOptions.GuessAutoFilterRowValuesFromFilter) { XpandXafGridView mainView = ((XpandGridListEditor)View.Editor).GridView; mainView.GuessAutoFilterRowValuesFromFilter(); } }
protected override void OnViewControlsCreated() { base.OnViewControlsCreated(); if (((IModelListViewAutoExpandNewRow)View.Model).AutoExpandNewRow) { var gridControl = (GridControl)View.Editor.Control; gridControl.ProcessGridKey += GridControlOnProcessGridKey; _xpandXafGridView = ((XpandGridListEditor)View.Editor).GridView; _xpandXafGridView.FocusedRowChanged += GridView_OnFocusedRowChanged; _xpandXafGridView.InitNewRow += GridView_OnInitNewRow; } }
protected override void OnViewControlsCreated() { base.OnViewControlsCreated(); Frame.GetController <ShowNavigationItemController>().ShowNavigationItemAction.Executing += ShowNavigationItemActionOnExecuting; XpandXafGridView view = ((XpandGridListEditor)View.Editor).GridView; var grid = ((XpandGridListEditor)View.Editor).Grid; grid.ViewRegistered += Grid_ViewRegistered; grid.ViewRemoved += Grid_ViewRemoved; view.MasterRowGetRelationCount += ViewOnMasterRowGetRelationCount; view.MasterRowGetRelationName += ViewOnMasterRowGetRelationName; view.MasterRowGetRelationDisplayCaption += MasterRowGetRelationDisplayCaption; view.MasterRowGetChildList += ViewOnMasterRowGetChildList; view.MasterRowEmpty += ViewOnMasterRowEmpty; view.MasterRowGetLevelDefaultView += ViewOnMasterRowGetLevelDefaultView; }
XpandXafGridView GetLevelDefaultViewCore(IModelListView masterModelListView, XpandXafGridView masterGridView, int rowHandle, int relationIndex, List <IMasterDetailRule> masterDetailRules) { var modelDetailRelationCalculator = new ModelDetailRelationCalculator(masterModelListView, masterGridView, masterDetailRules); bool isRelationSet = modelDetailRelationCalculator.IsRelationSet(rowHandle, relationIndex); if (isRelationSet) { IModelListView childModelListView = modelDetailRelationCalculator.GetChildModelListView(rowHandle, relationIndex); ListView listView = GetListView(modelDetailRelationCalculator, rowHandle, relationIndex, childModelListView); XpandXafGridView defaultXpandXafGridView = null; EventHandler[] listViewOnControlsCreated = { null }; listViewOnControlsCreated[0] = (sender, args) => { defaultXpandXafGridView = (XpandXafGridView)((GridListEditor)((XpandListView)sender).Editor).GridView; listView.ControlsCreated -= listViewOnControlsCreated[0]; }; listView.ControlsCreated += listViewOnControlsCreated[0]; listView.CreateControls(); return(defaultXpandXafGridView); } return(null); }
protected override void OnDeactivated() { base.OnDeactivated(); Frame.GetController <ShowNavigationItemController>().ShowNavigationItemAction.Executing -= ShowNavigationItemActionOnExecuting; var editor = View.Editor as XpandGridListEditor; if (editor == null) { return; } if (editor.Grid != null) { editor.Grid.ViewRegistered -= Grid_ViewRegistered; editor.Grid.ViewRemoved -= Grid_ViewRemoved; if (editor.GridView == editor.Grid.MainView) { List <XpandXafGridView> gridViews = editor.Grid.Views.OfType <XpandXafGridView>().ToList(); for (int i = gridViews.Count() - 1; i > -1; i--) { XpandXafGridView xpandXafGridView = gridViews[i]; if (xpandXafGridView.Window != null) { ((WinWindow)xpandXafGridView.Window).Form.Close(); } } } } if (editor.GridView != null) { editor.GridView.MasterRowGetRelationCount -= ViewOnMasterRowGetRelationCount; editor.GridView.MasterRowGetRelationName -= ViewOnMasterRowGetRelationName; editor.GridView.MasterRowGetRelationDisplayCaption -= MasterRowGetRelationDisplayCaption; editor.GridView.MasterRowGetChildList -= ViewOnMasterRowGetChildList; editor.GridView.MasterRowEmpty -= ViewOnMasterRowEmpty; editor.GridView.MasterRowGetLevelDefaultView -= ViewOnMasterRowGetLevelDefaultView; } }
public XpandXafGridView GetLevelDefaultView(XpandXafGridView masterGridView, int rowHandle, int relationIndex, IModelListView masterModelListView, List <IMasterDetailRule> masterDetailRules) { return(GetLevelDefaultViewCore(masterModelListView, masterGridView, rowHandle, relationIndex, masterDetailRules)); }