private async Task GetLayerFieldsAsync()
        {
            LayerFields.Clear();
            if (SelectedLayer == null)
            {
                return;
            }
            if (_selectedFeatureLayer == null)
            {
                return;
            }
            await QueuedTask.Run(() =>
            {
                ObservableCollection <string> fields = new ObservableCollection <string>();

                foreach (FieldDescription fd in _selectedFeatureLayer.GetFieldDescriptions())
                {
                    string shapeField = _selectedFeatureLayer.GetFeatureClass().GetDefinition().GetShapeField();
                    if (fd.Name == shapeField)
                    {
                        continue;                //filter out the shape field.
                    }
                    fields.Add(fd.Name);
                }
                SetProperty(ref _layerFields, fields, () => LayerFields);
                SetProperty(ref _selectedField, fields.FirstOrDefault(), () => SelectedField);
            });
        }
 protected LayerVector()
 {
     Fields = new LayerFields();
     Items = new GisShapeCollection();
 }