我对silverlight数据网格有点问题。我写了一个小示例应用程序来显示问题。 (您可以在此处下载:http://rapidshare.com/files/433480041/DataGridValidationTest.zip)。
在这里,您可以向DataGrid中显示的Collection添加一个新Person(具有Name和Age)。
我还基于INotifyDataErrorInfo接口实现了验证。如果单击“保存”,则数据为validatet(名称不能为null,Age gt 0)。
验证工作正常,但只有在我单击一行时才会显示验证错误。单击“保存”按钮后,数据将被验证,但不会显示在网格中(参见下图):
如果我单击该行,要更改数据,将显示验证消息(如下图所示):
如果我在那一行,我必须解决问题,因为我无法选择另一个单元格。
有谁知道,我如何直接在网格中显示(全部)错误? 如果没有解决问题,我可以摆脱错误吗?
提前,
TJ
答案 0 :(得分:0)
据我所知,在Silverlight数据网格中,一次只有一行是活动的,所以如果你想同时对所有行进行评估,那是不可能的。
另一种解决方法是在同一个单元格中添加所有内容。因此,您的所有数据都是可编辑的,并且同时也会进行验证。我的意思是
如果您有2列网格 -
<DataGrid>
<Name>
<Age>
</DataGrid>
让它看起来像这样
<Grid>
<Cell>
<Grid>
<Name>
<Age>
</Grid>
</Cell></DataGrid>