Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 :
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:
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:
AssemblyContextControlItem: Mengelola daftar rakitan lokal yang direferensikan yang akan digunakan di dalam alur kerja untuk kontrol (seperti editor ekspresi).
ReadOnlyState: Menunjukkan apakah perancang berada dalam status baca-saja.
Selection: Menentukan kumpulan objek yang saat ini dipilih.
WorkflowFileItem: Memberikan informasi tentang file yang menjadi dasar sesi pengeditan saat ini.
Layanan:
AttachedPropertiesService: Memungkinkan properti ditambahkan ke instans saat ini, menggunakan AddProperty.
DesignerView: Memungkinkan akses ke fitur kanvas desainer.
IActivityToolboxService: Memungkinkan konten kotak alat diperbarui.
ICommandService: Digunakan untuk mengintegrasikan perintah perancang (seperti Menu Konteks) dengan implementasi layanan yang disediakan khusus.
IDesignerDebugView: Menyediakan fungsionalitas untuk debugger perancang.
IExpressionEditorService: Menyediakan akses ke dialog Editor Ekspresi.
IIntegratedHelpService: Menyediakan fungsionalitas bantuan terintegrasi kepada perancang.
IValidationErrorService: Menyediakan akses ke kesalahan validasi menggunakan ShowValidationErrors.
IWorkflowDesignerStorageService: Menyediakan layanan internal untuk menyimpan dan mengambil data. Layanan ini digunakan secara internal oleh .NET Framework, dan tidak dimaksudkan untuk penggunaan eksternal.
IXamlLoadErrorService: Menyediakan akses ke koleksi kesalahan beban XAML menggunakan ShowXamlLoadErrors.
ModelService: Digunakan oleh perancang untuk berinteraksi dengan model alur kerja yang sedang diedit.
ModelTreeManager: Menyediakan akses ke akar pohon item model menggunakan Root.
UndoEngine: Menyediakan fungsionalitas batalkan dan ulangi.
ViewService: Memetakan elemen visual ke item model dasar.
ViewStateService: Menyimpan status tampilan untuk item model.
VirtualizedContainerService: Digunakan untuk menyesuaikan perilaku antarmuka pengguna kontainer virtual.
WindowHelperService: Digunakan untuk mendaftar dan membatalkan pendaftaran delegasi untuk pemberitahuan peristiwa. Memungkinkan penetapan pemilik jendela.