public override ValidationResult Validate(object value, CultureInfo cultureInfo) { BindingGroup bindingGroup = (BindingGroup)value; if (bindingGroup.Items.Count > 0) { VmpM.VMPTableBaseModel vmpLayer = (VmpM.VMPTableBaseModel)(bindingGroup.Items[0]); VmpVM.VMPDataRepositoryVM vmpRepo = vmpLayer.Source as VmpVM.VMPDataRepositoryVM; BooleanYesNoConverter boolYesNo = new BooleanYesNoConverter(); bool useBounds = Convert.ToBoolean(boolYesNo.ConvertBack(bindingGroup.GetValue(vmpLayer, "UseBounds"), null, null, null)); object minScaleObj = bindingGroup.GetValue(vmpLayer, "MinScale"); object maxScaleObj = bindingGroup.GetValue(vmpLayer, "MaxScale"); int minScale = -1; int maxScale = -1; try { minScale = Convert.ToInt32(minScaleObj); } catch (Exception ex) { String mes = "Ошибка в значении нижней границы масштаба: \n" + ex.Message; return(new ValidationResult(false, mes)); } try { maxScale = Convert.ToInt32(maxScaleObj); } catch (Exception ex) { String mes = "Ошибка в значении верхней границы масштаба: \n" + ex.Message; return(new ValidationResult(false, mes)); } if (minScale < 0) { return(new ValidationResult(false, "Минимальное значение не может быть отрицательным числом")); } if (maxScale < 0) { return(new ValidationResult(false, "Максимальное значение не может быть отрицательным числом")); } if (minScale > maxScale) { return(new ValidationResult(false, "Минимальное значение не может быть больше максимального")); } } return(ValidationResult.ValidResult); }
/// <summary> /// Загрузка слоев подложки (выполняется только один раз) /// </summary> public void UpdateBottomLayers() { foreach (mvLayer layer in _bottomLayers) { var table = FindTable(layer.NAME) as VMPM.VMPTableBaseModel; if (table != null) { table.UseBounds = layer.usebounds; table.MinScale = (int)layer.MinScale; table.MaxScale = (int)layer.MaxScale; } else { table = new VMPM.VMPTableBaseModel(this, layer.NAME, AbsM.ETableType.BottomLayer) { NameMap = layer.NAME, Name = layer.NAME, Text = layer.NAME, GeomType = AbsM.EGeomType.None, MinScale = (int)layer.MinScale, MaxScale = (int)layer.MaxScale, UseBounds = layer.usebounds, IsVisible = layer.Visible, IsReadOnly = true, Tag = null }; try { _tables.Add(table); MGroupAddTable(_groups[0], table); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }