Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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:
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:
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:
AssemblyContextControlItem: Denetimler (ifade düzenleyicisi gibi) için iş akışı içinde kullanılacak başvuruda bulunılan yerel derlemelerin listesini yönetir.
ReadOnlyState: Tasarımcının salt okunur durumda olup olmadığını gösterir.
Selection: Seçili durumdaki nesne koleksiyonunu tanımlar.
WorkflowFileItem: Geçerli düzenleme oturumunun temel alındığı dosya hakkında bilgi sağlar.
Hizmetleri:
AttachedPropertiesService: Özelliklerin AddProperty kullanılarak geçerli örneğe eklenmesine izin verir.
DesignerView: Tasarımcı tuvalinin özelliklerine erişime izin verir.
IActivityToolboxService: Araç kutusunun içeriğinin güncelleştirilmesini sağlar.
ICommandService: Tasarımcı komutlarını (Bağlam Menüsü gibi) özel olarak sağlanan hizmet uygulamalarıyla tümleştirmek için kullanılır.
IDesignerDebugView: Tasarımcı hata ayıklayıcısı için işlevsellik sağlar.
IExpressionEditorService: İfade Düzenleyicisi iletişim kutusuna erişim sağlar.
IIntegratedHelpService: Tasarımcıya tümleşik yardım işlevselliği sağlar.
IValidationErrorService: kullanarak ShowValidationErrorsdoğrulama hatalarına erişim sağlar.
IWorkflowDesignerStorageService: Verileri depolamak ve almak için bir iç hizmet sağlar. Bu hizmet .NET Framework tarafından dahili olarak kullanılır ve dış kullanıma yönelik değildir.
IXamlLoadErrorService: ShowXamlLoadErrors kullanarak XAML yükleme hatası koleksiyonuna erişim sağlar.
ModelService: Tasarımcı tarafından düzenlenen iş akışının modeliyle etkileşime geçmek için kullanılır.
ModelTreeManager: Root kullanarak model öğesi ağacının köküne erişim sağlar.
UndoEngine: Geri alma ve yineleme işlevselliği sağlar.
ViewService: Görsel öğeleri temel model öğeleriyle eşler.
ViewStateService: Model öğeleri için görünüm durumlarını depolar.
VirtualizedContainerService: Sanal kapsayıcı kullanıcı arabirimi davranışını özelleştirmek için kullanılır.
WindowHelperService: Olay bildirimleri için temsilcileri kaydetmek ve kaydını silmek için kullanılır. Ayrıca bir pencere sahibinin ayarlanmasına da izin verir.