コード例 #1
0
        private void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (_vm == null)
            {
                _vm = DataContext as PmConfigViewModel;
            }
            if (_vm == null || PmGridControl.Columns.Any(p => Equals(p.Tag, ColUnboundMethodsFieldName)))
            {
                return;
            }

            try
            {
                PmGridControl.BeginDataUpdate();

                foreach (var op in _vm.GetOperation())
                {
                    var opcode = op.GetProperty <string>(BillOperation.OperationCodePropertyName);
                    var header = op.GetProperty <string>(BillOperation.OperationNamePropertyName);

                    var column = new GridColumn
                    {
                        Header    = header,
                        FieldName = opcode,
                        Width     = 200,
                        AllowUnboundExpressionEditor = false,
                        UnboundType  = UnboundColumnType.Object,
                        AllowSorting = DefaultBoolean.True,
                        SortMode     = ColumnSortMode.DisplayText,
                        //AllowAutoFilter = false,
                        //AllowColumnFiltering  = DefaultBoolean.False,
                        //AutoFilterCondition = new AutoFilterCondition(),
                        FilterPopupMode  = FilterPopupMode.CheckedList,
                        ColumnFilterMode = ColumnFilterMode.DisplayText,
                        Tag = ColUnboundMethodsFieldName
                    };

                    PmGridControl.Columns.Add(column);
                }

                _vm.NewRowAdded -= OnNewRowAdded;
                _vm.NewRowAdded += OnNewRowAdded;

                _vm.BeforeSave -= OnBeforeSave;
                _vm.BeforeSave += OnBeforeSave;

                _vm.BeforeRefresh -= OnBeforeRefresh;
                _vm.BeforeRefresh += OnBeforeRefresh;
            }
            finally
            {
                PmGridControl.EndDataUpdate();
            }
        }
コード例 #2
0
        protected override void OnClose()
        {
            DataContextChanged   -= OnDataContextChanged;
            PmGridControl.Loaded -= OnGridLoaded;
            PmGridControl.RestoredLayoutFromXml -= OnGridRestoredLayoutFromXml;
            PmGridControl.SelectionChanged      -= OnGridSelectionChanged;
            PmGridControl.ItemsSourceChanged    -= OnGridItemsSourceChanged;

            base.OnClose();
            if (_vm != null)
            {
                _vm.Dispose();
                _vm = null;
            }
        }