/// <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); } }
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; }