Exemplo n.º 1
0
        /// <summary>
        /// Loads the necessary prerequisites for DestinationRelationshipViewModel
        /// </summary>
        public async Task LoadViewModel(RelatedFeatureQueryResult relatedFeatureQueryResult)
        {
            // get the related records for all the destination relationships to make available for editing
            await GetAvailableValues();

            if (relatedFeatureQueryResult.Count() > 0)
            {
                var relatedRecord = relatedFeatureQueryResult.First();

                // load feature to be able to access popup
                if (relatedRecord is ArcGISFeature loadableFeature)
                {
                    await loadableFeature.LoadAsync();
                }

                // choose the selected related record from the list of available values
                // this will enable seamless binding during editing to the list of available values and to the selected value
                foreach (var popupManager in OrderedAvailableValues)
                {
                    if (popupManager.DisplayedFields.Count() > 0 && AreAttributeValuesTheSame(popupManager, relatedRecord))
                    {
                        PopupManager = popupManager;
                        return;
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Loads the necessary prerequisites for OriginRelationshipViewModel
        /// </summary>
        public async Task LoadViewModel(RelatedFeatureQueryResult relatedFeatureQueryResult, RelationshipInfo relationshipInfo)
        {
            if (relatedFeatureQueryResult.Count() > 0)
            {
                OriginRelatedRecords = new ObservableCollection <PopupManager>();

                foreach (var relatedRecord in relatedFeatureQueryResult)
                {
                    // load feature to be able to access popup
                    if (relatedRecord is ArcGISFeature loadableFeature)
                    {
                        await loadableFeature.LoadAsync();
                    }
                    var popupManager = new PopupManager(new Popup(relatedRecord, relatedRecord.FeatureTable.PopupDefinition));

                    OriginRelatedRecords.Add(popupManager);
                    RelationshipInfo = relationshipInfo;
                }

                // sort list if more than one record
                if (OriginRelatedRecords.Count > 1)
                {
                    OriginRelatedRecords = new ObservableCollection <PopupManager>(OriginRelatedRecords.OrderByDescending(x => x.DisplayedFields.First().Value));
                }
            }
        }