Aracılığıyla paylaş


ModelItem Düzenleme Bağlamını Kullanma

Düzenleme ModelItem bağlamı, konak uygulamasının tasarımcıyla iletişim kurmak için kullandığı nesnedir. EditingContextkullanılabilecek ve Servicesolmak üzere iki yöntemi Items kullanıma sunar

Items koleksiyonu

Koleksiyon Items , konak ve tasarımcı arasında paylaşılan verilere veya tüm tasarımcıların kullanabileceği verilere erişmek için kullanılır. Bu koleksiyon, sınıfı aracılığıyla erişilen aşağıdaki özelliklere ContextItemManager sahiptir:

  1. GetValue

  2. Subscribe

  3. Unsubscribe

  4. SetValue

Hizmetler koleksiyonu

Koleksiyon Services , tasarımcının konakla etkileşimde bulunurken kullandığı hizmetlere veya tüm tasarımcıların kullandığı hizmetlere erişmek için kullanılır. Bu koleksiyon aşağıdaki not yöntemlerine sahiptir:

  1. Publish

  2. Subscribe

  3. Unsubscribe

  4. GetService

Tasarımcıya etkinlik atama

Etkinliğin hangi tasarımcıyı kullandığını belirtmek için Tasarım Aracı özniteliği kullanılır.

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

Hizmet oluşturma

Tasarımcı ile konak arasında bilgi kanalı görevi görecek bir hizmet oluşturmak için bir arabirim ve bir uygulama oluşturulmalıdır. arabirimi, yöntemi tarafından Publish hizmetin üyelerini tanımlamak için kullanılır ve uygulama hizmetin mantığını içerir. Aşağıdaki kod örneğinde bir hizmet arabirimi ve uygulaması oluşturulur.

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  
            } ;  
        }  
    }  

Hizmet yayımlama

Bir tasarımcının bir hizmeti tüketmesi için önce yöntemini kullanarak konak tarafından yayımlanması Publish gerekir.

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

Hizmete abone olmak

Tasarımcı, yöntemindeki yöntemini kullanarak Subscribe hizmete erişim elde eder OnModelItemChanged . Aşağıdaki kod parçacığı bir hizmete nasıl abone olunduğunu gösterir.

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;
    }  
}  

Items koleksiyonunu kullanarak veri paylaşma

Items koleksiyonunun kullanılması Services koleksiyonunu kullanmaya benzer, ancak SetValue Yayımla yerine kullanılır. Bu koleksiyon, karmaşık işlevler yerine tasarımcılar ve konak arasında basit verileri paylaşmak için daha uygundur.

EditingContext konak öğeleri ve hizmetleri

.NET Framework, düzenleme bağlamı aracılığıyla erişilen bir dizi yerleşik öğe ve hizmet sağlar.

Öğeler:

Hizmetler: