laptop and a wrench

Erro

ISymbolEditor.EditSymbol(...) does not commit edits to existing ISymbol reference parameter.

Última Publicação: November 30, 2018 ArcObjects SDK
Número de ID do Erro BUG-000117337
EnviadoOctober 9, 2018
Última ModificaçãoJune 5, 2024
Aplica-se àArcObjects SDK
Versão encontrada10.6
Sistema OperacionalWindows OS
Versão do Sistema Operacional10.0 64 Bit
StatusWill Not Be Addressed

Informações Adicionais

The symbol parameter on EditSymbol is a reference parameter, which means a reference must be passed in and cannot be cast on that assignment. An updated version of the OnClick function that fixes the issue is below: protected override void OnClick() { pStyleGallery = GetStyleGallery(); pStyleStorage = pStyleGallery as IStyleGalleryStorage; pStyleStorage.TargetFile = STYLE_PATH; pStyleStorage.AddFile(STYLE_PATH); pEnumStyleGalleryItem = GetEnumStyleGalleryItem(pStyleGallery); // Gets the specified symbol from the style gallery. IStyleGalleryItem styleGalleryItem = LoadStyleSymbol(pEnumStyleGalleryItem, SYMBOl_NAME); //------------------------------------------------------------------------ // Editing Symbol. //------------------------------------------------------------------------ // Using existing item from style gallery. IMarkerSymbol markerSymbol = styleGalleryItem.Item as IMarkerSymbol; ISymbolEditor symbolEditor = new SymbolEditor(); symbolEditor.Title = "Edit " + styleGalleryItem.Name; // Print marker detail before edit. Console.WriteLine("Before dialog edit."); PrintMultiLayerMarkerDetails(markerSymbol as IMultiLayerMarkerSymbol); // "markerSymbol" is pasted as a reference and is ment to change // directly from the dialog inputs by the user. ISymbol editSymbol = markerSymbol as ISymbol; bool isSymbolEdited = symbolEditor.EditSymbol(ref editSymbol, 0); if (!isSymbolEdited) { //Return a message here if the dialog is canceled. Console.WriteLine("Cancel was clicked."); } else // If the user clicks OK. { // EditSymbol is ment to return "markerSymbol" as an IMultiLayerMarkerSymbol. IMultiLayerMarkerSymbol multiMarker = editSymbol as IMultiLayerMarkerSymbol; // Print marker details after the edit. Console.WriteLine("After dialog edit."); PrintMultiLayerMarkerDetails(multiMarker); styleGalleryItem.Item = multiMarker; pStyleGallery.UpdateItem(styleGalleryItem); } }

Etapas para Reproduzir

ID do Erro: BUG-000117337

Software:

  • ArcObjects SDK

Seja notificado quando o status de um erro mudar

Baixe o Aplicativo de Suporte da Esri

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Baixe o Aplicativo de Suporte da Esri

Ir para as opções de download