Verktøy er et middel til å vise logikk i den ArcGIS-kartwebdelen som skal initieres av brukeren. Hvis det virker fornuftig at funksjonaliteten du implementerer, initieres ved at en bruker klikker på en knapp på båndet, bør du innkapsle denne funksjonaliteten i et verktøy.
Kartwebdelen viser kommandoer (verktøy) som implementerer grensesnittet ICommand. Dette grensesnittet gir noen få medlemmer. I en kartwebdelkontekst brukes disse medlemmene som følger:
I tillegg til å implementere disse medlemmene må du også legge til to attributter til klassen som implementerer ICommand. Det første er System.ComponentModel.Composition.ExportAttribute, som er inkludert i samlingen System.ComponentModel.Composition som inngår i Microsoft Managed Extensibility Framework (MEF). Dette attributtet informerer kartwebdelen om at kommandoen bør gjøres tilgjengelig for å kunne legges til på båndet. Når du inkluderer det i en kommando du implementerer, tar det alltid følgende form:[Export(typeof(ICommand))]
public class MyCommand : ICommand
Det andre attributtet som skal legges til, er ESRI.ArcGIS.Client.Extensibility.DisplayNameAttribute. Dette bestemmer navnet på kommandoen slik det vises for en designer som skal legge det til i kartwebdelen. Dette attributtet skal angis som følger:[Export(typeof(ICommand))]
[DisplayName("<Name to display>")]
public class MyCommand : ICommand
Et eksempel på en enkel kommando er vist i følgende kode. Kommandoen viser en meldingsboks og aktiveres når kartet ikke er lik null. I dette tilfellet brukes ikke hendelsen CanExecuteChanged.
[Export(typeof(ICommand))]
[DisplayName("Simple Command")]
public class SimpleCommand : ICommand
{
public void Execute(object parameter)
{
// Show a message box when the command's ribbon button is clicked.
MessageBox.Show("Simple command executed");
}
public bool CanExecute(object parameter)
{
// Show as executable (i.e., enable the button on the ribbon) unless the map is null.
return MapApplication.Current.Map != null;
}
public event EventHandler CanExecuteChanged;
}