コード例 #1
0
        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);
            }
        }
コード例 #2
0
        protected override void OnViewControlsCreated()
        {
            var modelListViewGridViewOptions = ((IModelListViewGuessAutoFilterRowValuesFromFilter)View.Model);

            if (modelListViewGridViewOptions.GuessAutoFilterRowValuesFromFilter)
            {
                XpandXafGridView mainView = ((XpandGridListEditor)View.Editor).GridView;
                mainView.GuessAutoFilterRowValuesFromFilter();
            }
        }
コード例 #3
0
 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;
     }
 }
コード例 #4
0
        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;
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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;
            }
        }
コード例 #7
0
 public XpandXafGridView GetLevelDefaultView(XpandXafGridView masterGridView, int rowHandle, int relationIndex, IModelListView masterModelListView, List <IMasterDetailRule> masterDetailRules)
 {
     return(GetLevelDefaultViewCore(masterModelListView, masterGridView, rowHandle, relationIndex, masterDetailRules));
 }