예제 #1
0
        protected override void OnViewControlsCreated()
        {
            base.OnViewControlsCreated();
            var columnViewEditor = View.Editor as IColumnViewEditor;

            if (columnViewEditor != null)
            {
                SyncronizeDataSourceWithCriteria(columnViewEditor);
                if (IsMasterDetail())
                {
                    var masterDetailColumnView = (IMasterDetailColumnView)(columnViewEditor).ColumnView;
                    Frame.GetController <ShowNavigationItemController>().ShowNavigationItemAction.Executing += ShowNavigationItemActionOnExecuting;
                    var grid = columnViewEditor.Grid;
                    grid.ViewRegistered += Grid_ViewRegistered;
                    grid.ViewRemoved    += Grid_ViewRemoved;
                    masterDetailColumnView.MasterRowGetRelationCount          += ViewOnMasterRowGetRelationCount;
                    masterDetailColumnView.MasterRowGetRelationName           += ViewOnMasterRowGetRelationName;
                    masterDetailColumnView.MasterRowGetRelationDisplayCaption += MasterRowGetRelationDisplayCaption;
                    masterDetailColumnView.MasterRowGetChildList        += ViewOnMasterRowGetChildList;
                    masterDetailColumnView.MasterRowEmpty               += ViewOnMasterRowEmpty;
                    masterDetailColumnView.MasterRowGetLevelDefaultView += ViewOnMasterRowGetLevelDefaultView;
                    masterDetailColumnView.MasterRowCollapsing          += GridViewOnMasterRowCollapsing;
                    grid.FocusedViewChanged += GridOnFocusedViewChanged;
                }
            }
        }
예제 #2
0
        protected override void OnDeactivated()
        {
            base.OnDeactivated();
            Frame.GetController <ShowNavigationItemController>().ShowNavigationItemAction.Executing -= ShowNavigationItemActionOnExecuting;
            var editor = View.Editor as WinColumnsListEditor;

            if (editor == null)
            {
                return;
            }

            var columnView             = editor.ColumnView as DevExpress.XtraGrid.Views.Grid.GridView;
            var masterDetailColumnView = columnView as IMasterDetailColumnView;
            var columnViewEditor       = editor as IColumnViewEditor;

            if (editor.Grid != null)
            {
                editor.Grid.ViewRegistered -= Grid_ViewRegistered;
                editor.Grid.ViewRemoved    -= Grid_ViewRemoved;
                if (columnViewEditor != null && masterDetailColumnView != null && !masterDetailColumnView.IsDetailView(columnViewEditor))
                {
                    var gridViews = editor.Grid.Views.OfType <IMasterDetailColumnView>().ToList();
                    for (int i = gridViews.Count - 1; i > -1; i--)
                    {
                        var xpandXafGridView = gridViews[i];
                        CloseNestedWindow(xpandXafGridView);
                    }
                }
            }

            if (columnView != null)
            {
                columnView.MasterRowCollapsing                -= GridViewOnMasterRowCollapsing;
                columnView.MasterRowGetRelationCount          -= ViewOnMasterRowGetRelationCount;
                columnView.MasterRowGetRelationName           -= ViewOnMasterRowGetRelationName;
                columnView.MasterRowGetRelationDisplayCaption -= MasterRowGetRelationDisplayCaption;
                columnView.MasterRowGetChildList              -= ViewOnMasterRowGetChildList;
                columnView.MasterRowEmpty -= ViewOnMasterRowEmpty;
                columnView.MasterRowGetLevelDefaultView -= ViewOnMasterRowGetLevelDefaultView;
                if (columnViewEditor != null && masterDetailColumnView != null && masterDetailColumnView.IsDetailView(columnViewEditor))
                {
                    View.CollectionSource.CriteriaApplied -= CollectionSourceOnCriteriaApplied;
                }
                View.Closing -= ViewOnClosing;
            }
        }