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. EditingContext, kullanılabilecek iki yöntem olan Items ve Services'yi kullanıma sunar.

Items koleksiyonu

Items koleksiyonu, 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, ContextItemManager sınıfı aracılığıyla erişilen aşağıdaki yeteneklere 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

Bir etkinliğin hangi tasarımcıyı kullandığını belirtmek için Designer ö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. Arabirim, Publish yöntemi tarafından 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üketebilmesi için, önce konak tarafından Publish yöntemi kullanılarak yayımlanması gerekir.

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

Hizmete abone olmak

Tasarımcı, Subscribe yöntemindeki OnModelItemChanged yöntemini kullanarak hizmete erişim elde eder. 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 sunucu arasında basit verileri paylaşmak için daha uygundur.

EditingContext barındırma öğeleri ve hizmetleri

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

Eşya:

Hizmetleri: