Delen via


De bewerkingscontext modelitem gebruiken

De ModelItem bewerkingscontext is het object dat de hosttoepassing gebruikt om te communiceren met de ontwerpfunctie. EditingContext maakt twee methoden Items beschikbaar en Services, die kunnen worden gebruikt

De verzameling Items

De Items verzameling wordt gebruikt voor toegang tot gegevens die worden gedeeld tussen de host en de ontwerper, of gegevens die beschikbaar zijn voor alle ontwerpers. Deze verzameling heeft de volgende mogelijkheden die toegankelijk zijn via de ContextItemManager klasse:

  1. GetValue

  2. Subscribe

  3. Unsubscribe

  4. SetValue

De verzameling Services

De Services verzameling wordt gebruikt voor toegang tot services die de ontwerper gebruikt om te communiceren met de host of services die alle ontwerpers gebruiken. Deze verzameling heeft de volgende methoden:

  1. Publish

  2. Subscribe

  3. Unsubscribe

  4. GetService

Een ontwerper een activiteit toewijzen

Als u wilt opgeven welke ontwerper een activiteit gebruikt, wordt het kenmerk Designer gebruikt.

[Designer(typeof(MyClassDesigner))]  
public sealed class MyClass : CodeActivity  
{
}

Een service maken

Als u een service wilt maken die fungeert als een samenvoeging van informatie tussen de ontwerper en de host, moet er een interface en een implementatie worden gemaakt. De interface wordt door de Publish methode gebruikt om de leden van de service te definiëren en de implementatie bevat de logica voor de service. In het volgende codevoorbeeld wordt een service-interface en -implementatie gemaakt.

public interface IMyService  
    {  
        IEnumerable<string> GetValues(string DisplayName);  
    }  
  
    public class MyServiceImpl : IMyService  
    {  
        public IEnumerable<string> GetValues(string DisplayName)  
        {  
            return new string[]  {
                DisplayName + " One",
                DisplayName + " Two",  
                "Three " + DisplayName  
            } ;  
        }  
    }  

Een service publiceren

Als een ontwerper een service wil gebruiken, moet deze eerst worden gepubliceerd door de host met behulp van de Publish methode.

this.Context.Services.Publish<IMyService>(new MyServiceImpl);  

Abonneren op een service

De ontwerper verkrijgt toegang tot de service met behulp van de Subscribe methode in de OnModelItemChanged methode. Het volgende codefragment laat zien hoe u zich abonneert op een service.

protected override void OnModelItemChanged(object newItem)  
{  
    if (!subscribed)  
    {  
        this.Context.Services.Subscribe<IMyService>(  
            servInstance =>  
            {  
                listBox1.ItemsSource = servInstance.GetValues(this.ModelItem.Properties["DisplayName"].ComputedValue.ToString());  
            }  
            );  
        subscribed = true;
    }  
}  

Gegevens delen met behulp van de verzameling Items

Het gebruik van de verzameling Items is vergelijkbaar met het gebruik van de verzameling Services, behalve die SetValue wordt gebruikt in plaats van Publiceren. Deze verzameling is geschikter voor het delen van eenvoudige gegevens tussen de ontwerpers en de host, in plaats van complexe functionaliteit.

EditContext-hostitems en -services

Het .NET Framework biedt een aantal ingebouwde items en services die toegankelijk zijn via de bewerkingscontext.

Items:

  • AssemblyContextControlItem: Hiermee beheert u de lijst met lokale assembly's waarnaar wordt verwezen, die in de werkstroom worden gebruikt voor besturingselementen (zoals de expressie-editor).

  • ReadOnlyState: Geeft aan of de ontwerper de status Alleen-lezen heeft.

  • Selection: Hiermee definieert u de verzameling objecten die momenteel zijn geselecteerd.

  • WorkflowCommandExtensionItem:

  • WorkflowFileItem: Bevat informatie over het bestand waarop de huidige bewerkingssessie is gebaseerd.

Services: