Bagikan melalui


Menggunakan Konteks Pengeditan ModelItem

Konteks ModelItem pengeditan adalah objek yang digunakan aplikasi host untuk berkomunikasi dengan perancang. EditingContext mengekspos dua metode, Items dan Services, yang dapat digunakan

Kumpulan Item

Koleksi Items digunakan untuk mengakses data yang dibagikan antara host dan perancang, atau data yang tersedia untuk semua desainer. Koleksi ini memiliki kemampuan berikut, diakses melalui ContextItemManager kelas :

  1. GetValue

  2. Subscribe

  3. Unsubscribe

  4. SetValue

Kumpulan Layanan

Koleksi Services ini digunakan untuk mengakses layanan yang digunakan perancang untuk berinteraksi dengan host, atau layanan yang digunakan semua desainer. Koleksi ini memiliki metode catatan berikut:

  1. Publish

  2. Subscribe

  3. Unsubscribe

  4. GetService

Menetapkan aktivitas perancang

Untuk menentukan perancang mana yang digunakan aktivitas, atribut Designer digunakan.

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

Membuat layanan

Untuk membuat layanan yang berfungsi sebagai saluran informasi antara perancang dan host, antarmuka dan implementasi harus dibuat. Antarmuka digunakan oleh Publish metode untuk menentukan anggota layanan, dan implementasinya berisi logika untuk layanan. Dalam contoh kode berikut, antarmuka dan implementasi layanan dibuat.

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

Menerbitkan layanan

Agar perancang dapat mengonsumsi layanan, layanan tersebut harus terlebih dahulu diterbitkan oleh host menggunakan metode Publish.

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

Berlangganan layanan

Perancang mendapatkan akses ke layanan menggunakan metode Subscribe dalam metode OnModelItemChanged. Cuplikan kode berikut menunjukkan cara berlangganan layanan.

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

Berbagi data menggunakan kumpulan Item

Menggunakan koleksi Item mirip dengan menggunakan koleksi Layanan, kecuali SetValue digunakan alih-alih Publikasi. Koleksi ini lebih tepat untuk berbagi data sederhana antara perancang dan host, daripada fungsionalitas yang kompleks.

Mengedit item dan layanan hostContext

.NET Framework menyediakan sejumlah item dan layanan bawaan yang diakses melalui konteks pengeditan.

Item:

Layanan: