2011-08-10 9 views
5

Hücreler üzerinde doğrulama ayarlamam var ve beklendiği gibi çalışıyor (metin kutusunun etrafına kırmızı bir vurgu yerleştirerek ve hatayla bir araç ipucu ekleyerek). Ancak, TheGrid'in DataGrid olduğu Validation.GetHasError (TheGrid) dosyasına erişmeye çalışırsam her zaman yanlış olur. DataGrid'teki HER hücrelerin hata yapıp yapmadığını nasıl kontrol edeceğini bilen var mı?Herhangi Bir WPF DataGrid Hücresinde Hata Olup Olmadığını Kontrol Etme

Bunu yapmak istiyorum, böylece hata varsa kaydetmeyi devre dışı bırakabilirim.

+0

Ben [Bu soruya] cevabım [1] daha XAML dostu bir şekilde çözer düşünüyorum . [1]: http://stackoverflow.com/questions/7121892/wpf-detect-row-validation-errors-in-c-sharp-code – user2112362

cevap

5

bu belgeyle sanallaştırma sorun haline aday olabileceğini ancak muhtemelen kaplarda bakmak zorunda:

var errors = (from c in 
        (from object i in _myGrid.ItemsSource 
        select _myGrid.ItemContainerGenerator.ContainerFromItem(i)) 
       where c != null 
       select Validation.GetHasError(c)) 
      .FirstOrDefault(x => x); 
if (errors) 
{ 
    //There be errors 
} 
+1

sayesinde ben bunu kadar sona erdi temelde ama denetimlere bakmak yerine, xaml'ın bağlı olduğu verilerimdeki Hatalar özelliğini kontrol ettim. – KrisTrip

+0

@KrisTrip: Tabii ki, her zaman tercih edilmek istenen veriye bağlayabilirseniz, normalde üretilen kapsayıcılarla uğraşmak gerekmemelidir. –