2011-08-10 47 views
5

我在單元格上設置了驗證,並且它按預期工作(在文本框周圍放置紅色突出顯示並添加一個帶有錯誤的工具提示)。但是,如果我嘗試訪問TheGrid是我的DataGrid的Validation.GetHasError(TheGrid),它始終是false。有誰知道如何檢查DataGrid中的ANY單元是否有錯誤?檢查是否有任何WPF DataGrid單元格有錯誤

我想這樣做,所以我可以禁用保存,如果有錯誤。

+0

我想,我的回答[這個問題] [1]解決它更XAML友好的方式。 [1]:http://stackoverflow.com/questions/7121892/wpf-detect-row-validation-errors-in-c-sharp-code – user2112362

回答

5

您可能會遇到的問題與虛擬化這一點,但你可能要看看容器:

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

謝謝,這基本上是我落得這樣做,但而不是查看控件,我檢查了xaml綁定到的數據的錯誤屬性。 – KrisTrip

+0

@KrisTrip:如果你可以將它綁定到當然總是首選的數據上,那麼通常應該不需要一直弄亂生成的容器。 –

相關問題