Evet, etkinliğinizdeki CacheMetadata, doğrulama işleminizi gerçekleştirmeniz gereken yerdir. Doğrulama, iş akışı çalışma zamanına ve tasarımcıya uygulanan bir kavramdır. (Onu halen bunu yaptığında bir istisna atılacaktır doğrulama hataları sahip iş akışları, derlenmiş veya bildirime, çalıştırma girişiminde, ancak aslında bu görebilirsiniz.)
Örnek:
protected override void CacheMetadata(ActivityMetadata metadata)
{
if (this.Body == 0) metadata.AddValidationError(
new ValidationError(
"You forgot to supply a body for (this activity)",
/*iswarning = */ true,
"Body"));
}
(Bkz. ActivityMetadata.AddValidationError)
İkincil sorumuz, ActivityDesigner tarafından doğrulama ekleme desteği var mı? Cevap 'hayır, gerçekten değil' - ActivityDesigner'ın üstüne bir miktar 'özel doğrulama' ekleyen bazı özel WPF ve veri bağlamasının yapılması mümkün olabilir, hatta kendi etkinlik sınıfınızda kendi SatisfiesConstraints özelliğinizi tanımlamak için AttachedPropertiesService özelliğini kullanabilir . Fakat bu ekstra bir iştir ve çalışma zamanı doğrulamasıyla tutarlı bir şekilde bağlanmayacak, bu yüzden sınırlı bir değer fikri.
Görüntüleyenlere not olarak, WPF ile her zaman iyi çalışmaz. Sonunda temel sınıfımın (NativeActivity'ı genişleten) uygulamalardan doğrulama hatalarını topladığı ve bunları hem CacheMetadata çağrıları hem de IDataErrorInfo için kullandığı bir karma sistem oluşturdum. – Will