2011-08-10 34 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:如果你可以将它绑定到当然总是首选的数据上,那么通常应该不需要一直弄乱生成的容器。 –

相关问题