private void OnGridContextMenuItemClick(object sender, ItemClickEventArgs e) { var oldMode = PmGridControl.ClipboardCopyMode; try { var mode = (ClipboardCopyMode)Enum.Parse(typeof(ClipboardCopyMode), e.Item.CommandParameter.ToString()); PmGridControl.ClipboardCopyMode = mode; PmGridControl.ByCheckCopyMode = false; PmGridControl.CopyToClipboard(); } finally { PmGridControl.ClipboardCopyMode = oldMode; PmGridControl.ByCheckCopyMode = true; } }
private void OnNewRowAdded(object sender, EventArgs eventArgs) { try { PmGridControl.BeginSelection(); var index = PmGridControl.FindRowByValue(PmConfiguratorData.IsNewRowPropertyName, true); if (index >= 0) { PmGridControl.UnselectAll(); PmGridControl.SelectItem(index); PmGridControl.CurrentColumn = PmGridControl.Columns[PmConfiguratorData.PmCodePropertyName]; PmGridControl.View.MoveFocusedRow(index); PmGridControl.View.FocusedRowHandle = index; PmGridControl.View.ShowEditor(); } } finally { PmGridControl.EndSelection(); } }
private void OnCustomUnboundColumnData(object sender, GridColumnDataEventArgs e) { if (Equals(e.Column.Tag, ColUnboundMethodsFieldName)) { var key = e.Column.FieldName; var row = PmGridControl.GetRowByListIndex(e.ListSourceRowIndex) as PmConfiguratorData; var isvalid = _vm != null && row != null && _vm.ValidatePmMethods(key, row); var methods = (IDictionary <string, EditableBusinessObjectCollection <object> >) e.GetListSourceFieldValue(PmConfiguratorData.PmMethodCodesPropertyName); if (e.IsGetData) { var values = GetTrueMethods(key, methods).ToList(); if (!isvalid) { values.Insert(0, Properties.Resources.PmMethodIsUnavailable); } e.Value = values; } if (e.IsSetData && isvalid) { var pms = GetTrueMethods(key, methods); pms.Clear(); if (e.Value != null) { foreach (var p in (List <object>)e.Value) { pms.Add(p); } } row.PmMethodCodesPropertyChanged(); } } }
private void RestoreColumnsSettings() { //Восстанавливаем Settings try { //Картинка PmGridControl.BeginDataUpdate(); var column = PmGridControl.Columns.Single(p => p.FieldName == "IsDirty"); column.DisplayTemplate = (ControlTemplate)Resources[ChangedColumnTemplateKey]; column.EditSettings = new ImageEditSettings { ShowMenu = false, }; //PM column = PmGridControl.Columns.Single(p => p.FieldName == PmConfiguratorData.PmCodePropertyName); column.HeaderToolTipTemplate = CreateHeaderSuperTipTemplate(column.Header, null, column.FieldName); column.ColumnFilterMode = ColumnFilterMode.DisplayText; column.EditSettings = new ConfiguratorLookUpEditSettings { //LookUpCodeEditor = "PM_PMCODE", ValueMember = new PM().GetPrimaryKeyPropertyName(), DisplayMember = "PMNAME", IsPopupAutoWidth = false, AllowNullInput = true, ShowSizeGrip = false, IsTextEditable = false, ItemType = typeof(PM) }; var bindingPms = new Binding(PmConfigViewModel.PmsPropertyName) { //IsAsync = true, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }; BindingOperations.SetBinding(column.EditSettings, LookUpEditSettingsBase.ItemsSourceProperty, bindingPms); //Сущности column = PmGridControl.Columns.Single(p => p.FieldName == PmConfiguratorData.ObjectEntityCodePropertyName); column.HeaderToolTipTemplate = CreateHeaderSuperTipTemplate(column.Header, null, column.FieldName); column.ColumnFilterMode = ColumnFilterMode.DisplayText; column.EditSettings = new ConfiguratorComboBoxEditSettings { LookUpCodeEditor = "SYSOBJECT_ENTITY", //ValueMember = "OBJECTNAME", //DisplayMember = "OBJECTNAME", AllowNullInput = true, ShowSizeGrip = false, IsTextEditable = false, AllowParentGridRefreshData = true }; //Атрибуты column = PmGridControl.Columns.Single(p => p.FieldName == PmConfiguratorData.ObjectNamePropertyName); column.HeaderToolTipTemplate = CreateHeaderSuperTipTemplate(column.Header, null, column.FieldName); column.ColumnFilterMode = ColumnFilterMode.DisplayText; column.EditSettings = new ConfiguratorComboBoxEditSettings { LookUpCodeEditor = "SYSOBJECT_ATTRIBUTE", LookUpCodeEditorFilterExt = "OBJECTPARENTID > 0", //ValueMember = "OBJECTNAME", //DisplayMember = "OBJECTNAME", AllowNullInput = true, ShowSizeGrip = false, IsTextEditable = false, AllowParentGridRefreshData = true }; //Операции var notAllowedPmMethodCellTemplate = TryFindResource(NotAllowedPmMethodCellTemplateKey) as DataTemplate; var columnHeaderMethodDescription = Properties.Resources.ColumnHeaderMethodDescription; var pmMethodValue = new PMMethod().GetPrimaryKeyPropertyName(); foreach (var col in PmGridControl.Columns.Where(p => Equals(p.Tag, ColUnboundMethodsFieldName))) { //Не разрешаем редактировать col.AllowEditing = DefaultBoolean.False; col.ReadOnly = true; col.HeaderToolTipTemplate = CreateHeaderSuperTipTemplate(col.Header, string.Format(columnHeaderMethodDescription, col.Header), col.FieldName); col.CellTemplateSelector = new PmMethodCellTemplateSelector { NotAllowedPmMethodsCellTemplate = notAllowedPmMethodCellTemplate }; col.EditSettings = new ConfiguratorComboBoxEditSettings { //LookUpCodeEditor = "PMMETHOD_PMMETHODCODE", ValueMember = pmMethodValue, DisplayMember = PMMethod.PMMETHODNAMEPropertyName, AllowNullInput = true, ShowSizeGrip = false, IsTextEditable = false, //ShowTooltipForTrimmedText = true, SeparatorString = Environment.NewLine, StyleSettings = new CheckedComboBoxStyleSettings() //InsertedItems = new object[] {Properties.Resources.PmMethodIsUnavailable} }; var binding = new Binding(PmConfigViewModel.PmMethodsPropertyName) { //IsAsync = true, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }; BindingOperations.SetBinding(col.EditSettings, LookUpEditSettingsBase.ItemsSourceProperty, binding); } } finally { PmGridControl.EndDataUpdate(); } }
private void OnShowingEditor(object sender, ShowingEditorEventArgs e) { if (e.RowHandle == DataControlBase.AutoFilterRowHandle) { return; } //http://documentation.devexpress.com/#WPF/CustomDocument6135 CriteriaOperator co = null; var hascriteria = false; try { PmGridControl.BeginDataUpdate(); var row = e.Row as PmConfiguratorData; if (row == null) { e.Cancel = true; return; } var column = e.Column; if (column.FieldName == PmConfiguratorData.ObjectEntityCodePropertyName) { if (string.IsNullOrEmpty(row.PmCode)) { e.Cancel = true; return; } //Если сделать в Loaded не работает клизма var settings = column.EditSettings as IConfiguratorSettingsBase; if (settings != null) { hascriteria = true; var pmkeys = _vm.GetEntityIds(); foreach (var p in pmkeys) { co |= new BinaryOperator(SysObject.ObjectIDPropertyName, p, BinaryOperatorType.Equal); } settings.LookupFilterCriteria = co; } } else if (column.FieldName == PmConfiguratorData.ObjectNamePropertyName) { if (string.IsNullOrEmpty(row.PmCode) || string.IsNullOrEmpty(row.OjectEntityCode)) { e.Cancel = true; return; } var settings = column.EditSettings as IConfiguratorSettingsBase; if (settings != null) { hascriteria = true; var pmkeys = _vm.GetAttributes(row.OjectEntityCode); //CriteriaOperator co = new BinaryOperator(SysObject.ObjectIDPropertyName, (object)null, BinaryOperatorType.Equal); foreach (var p in pmkeys) { co |= new BinaryOperator(SysObject.ObjectIDPropertyName, p, BinaryOperatorType.Equal); } settings.LookupFilterCriteria = co; } } else if (Equals(column.Tag, ColUnboundMethodsFieldName)) //Методы { //Редактируем в другой форме e.Cancel = true; //if (string.IsNullOrEmpty(column.FieldName) || // string.IsNullOrEmpty(row.PmCode) || string.IsNullOrEmpty(row.OjectEntityCode) || string.IsNullOrEmpty(row.ObjectName)) //{ // e.Cancel = true; // return; //} //var settings = column.EditSettings as IConfiguratorSettingsBase; //if (settings != null) //{ // hascriteria = true; // var pmkeys = _vm.GetAllowedPmMethods(operationCode: column.FieldName, // objectEntityCode: row.OjectEntityCode, objectName: row.ObjectName); // var pms = // _vm.ItemsSource.Where( // p => p.PmMethodCodes != null && p.Id != row.Id && // p.PmCode == row.PmCode && p.OjectEntityCode == row.OjectEntityCode && // p.ObjectName == row.ObjectName) // .SelectMany(p => p.PmMethodCodes.Values) // .SelectMany(m => m.Cast<string>()) // .Distinct().ToArray(); // foreach (var p in pmkeys) // { // if (pms.Any(pm => pm.EqIgnoreCase(p))) // continue; // co |= new BinaryOperator("PMMETHODCODE", p, BinaryOperatorType.Equal); // } // settings.LookupFilterCriteria = co; //} } } finally { if (hascriteria) { if (ReferenceEquals(co, null)) { e.Cancel = true; } } PmGridControl.EndDataUpdate(); } }