2010-11-18 18 views
2

Silverlight Doğrulama hakkında bir kayıp yaşıyorum. Sonunda IDataErrorInfo'u INotifyDataErrorInfo ile birlikte kullanmayı öğrendim, böylece Denetimler etrafındaki kırmızı kenarlıklar doğruladığımda gösterilmeye başladığında.Kanca ValidationSummary ViewModel'imin bir alt öğesinin üzerine Silverlight 4

Ancak bazı garip nedenlerden dolayı ValidationSummary'ı gösteremiyorum.

Şu anda bu durumun, tüm denetimlerimin geçerli ViewModel'in bir çocuğuna bağlı olmasıyla ilgili bir şeyden şüpheleniyorum. tüm giriş elemanları NewCustomerViewModel içinde bulunan bir Customer nesneye bağlı iken

Yani UserControl böyle bağları aracılığıyla NewCustomerViewModel bağlıdır:

<TextBox Text="{Binding Path=NewCustomer.Address, Mode=TwoWay, 
     ValidatesOnNotifyDataErrors=True, ValidatesOnDataErrors=True}"/> 

Ben Müşteriye için'BIND için ValidationSummary en DataContext özelliğini ayarlayarak çalıştı Özellik, ama bu işe yaramıyor.

Herhangi bir fikrin var mı?

cevap

3

Ben bir UI öğesi için ValidationSummary hedef özelliğini ayarlamak zorunda olabilir düşünüyorum. Benim için bu ne yaptı.

0

Neden IDataErrorInfo ve INotifyDataErrorInfo arabirimlerini uygularsınız? Her ne kadar , her ikisini de uygulamanıza rağmen, gerek yoktur. INotifyDataErrorInfo arabirimi Silverlight'a özgüdür ve IDataErrorInfo arabiriminden (IMO) daha iyidir. ValidatesOnDataErrors öğesini bağlamalarınızda True (daha sonra ilişkili arabirimi kullanmadığınız için) olarak ayarlamanız gerekmez ve aslında True değeri varsayılan değer olarak, True ValidatesOnNotifyDataErrors özelliğini de True olarak ayarlamanız gerekmez. Ancak, bu aslında sorunuzu cevaplamıyor :). Daha fazla yardım için muhtemelen daha fazla ayrıntıya ihtiyacım var (XAML'niz). Sorunu gösteren örnek bir projeyi bir araya getirme şansı var mı?

Chris

+0

Elbette birlikte bir örnek koyacağım. INotifyDataErrorInfo' için. Bu arabirimi kullanmamın temel nedeni, kullanıcı herhangi bir girdi girmeden Kaydet'i tıkladığında geçersiz olduklarını kontrol etmektir. Tek başına IDataErrorInfo ile mümkün değildi (en azından benim için değil). IDataErrorInfo arayüzünü tamamen kaldırabilirim sanırım .. Bir örnek oluşturacağım. Yardımınız için teşekkürler .. Kitabınızı books.google.com adresinden bu konuyla ilgili olarak da kontrol ettim, ancak gerçekten yardımcı olmadı. – Tigraine

İlgili konular