/// <summary>
        /// Gets all the "Display Units" for the "Unit Format Type" selected.
        /// Unit Format types are: Distance, Location, Angular, etc.
        /// Each Format type has "DisplayUnitFormats". Distance has meters, foot, etc.
        /// </summary>
        public async void UpdateDisplayUnits()
        {
            List <DisplayUnitFormatItem> items = new List <DisplayUnitFormatItem>(); //DisplayUnitFormatItem is custom type for this sample.

            if (SelectedUnit == null)
            {
                return;
            }
            await QueuedTask.Run(() => {
                //Getting the UnitFormatType object from the selected item in the combo box.
                UnitFormatType UnitFormatTypeValue = (UnitFormatType)Enum.Parse(typeof(UnitFormatType), SelectedUnit, true);
                //Get the list of DisplayUnitFormats in the current project for the given ArcGIS.Desktop.Core.UnitFormats.UnitFormatType
                var unitFormats = DisplayUnitFormats.Instance.GetProjectUnitFormats(UnitFormatTypeValue);
                //Gets the default DisplayUnitFormat in the current project for the given ArcGIS.Desktop.Core.UnitFormats.UnitFormatType.
                var defaultUnitFormat = DisplayUnitFormats.Instance.GetDefaultProjectUnitFormat(UnitFormatTypeValue);
                foreach (var unitFormat in unitFormats)
                {
                    //is the unit format the default for this type?
                    bool IsUnitFormatDefault = defaultUnitFormat.UnitCode == unitFormat.UnitCode ? true : false;
                    items.Add(new DisplayUnitFormatItem(UnitFormatTypeValue, unitFormat, IsUnitFormatDefault));
                }
            });

            if (items == null)
            {
                return;
            }
            DisplayUnitFormatItems.Clear();
            foreach (var item in items)
            {
                DisplayUnitFormatItems.Add(item);
            }
        }
Exemple #2
0
 private UnitFormatType _unitFormatType;       //Distance, Location, Angular....
 public DisplayUnitFormatItem(UnitFormatType unitFormatType, DisplayUnitFormat displayUnitFormat, bool isDefaultUnitFormat)
 {
     _displayUnitFormat = displayUnitFormat;
     _unitFormatType    = unitFormatType;
     _name             = displayUnitFormat.DisplayName;
     _code             = displayUnitFormat.MeasurementUnit.ToString();
     _unitCode         = displayUnitFormat.UnitCode.ToString();
     _plural           = displayUnitFormat.DisplayNamePlural;
     _abbreviation     = displayUnitFormat.Abbreviation;
     _format           = displayUnitFormat.FormatValue(12345.12);
     _isDefaultFormat  = isDefaultUnitFormat;
     _nameAbbreviation = $"{_name} ({_abbreviation})";
     _projectDefault   = _isDefaultFormat ? "Project Default" : string.Empty;
 }