如何在Silverlight 3 DataGrid中找到字段?

时间:2010-01-11 18:55:09

标签: silverlight validation silverlight-3.0 datagrid

我需要在Silverlight 3 DataGrid中找到一个单元格/列,以便我可以在其上调用UpdateSource。我怎么能这样做?

这就是为什么,如果您有兴趣:

我在Silverlight 3应用程序中有一个DataGrid,它显示用DataAnnotations属性(如[Required])修饰的对象,以进行验证。我正在从导入的CSV文件填充DataGrid。导入的行将无效,因为CSV不包含所有必填字段。

验证有效,如果用户编辑数据网格中的字段或我调用submit(它是WCF RIA Services应用程序)。我想要做的是在加载数据网格后立即触发验证。从大量阅读来看,似乎没有内置的方法来做到这一点。

我认为如果我可以在datagrid的第一行找到该字段并调用UpdateSource(),我将触发验证错误。如何导航到手动定义的数据网格?

3 个答案:

答案 0 :(得分:1)

DataGridFieldName.Items使您可以访问绑定到DataGrid的对象。 您可以通过手动调用Validator.ValidateObject来触发对此项的验证。

var firstRowOfDataGrid = dataGrid.Items [0];
ValidationContext validationContext = new ValidationContext(firstRowOfDataGrid,null,null);
Validator.ValidateObject(this,validationContext);

我不知道这是否能解决你的问题,但值得一试。

MSDN上的验证者
http://msdn.microsoft.com/en-us/library/dd382100(VS.100).aspx

答案 1 :(得分:0)

您是否尝试过使用FindName(“名称”)

http://msdn.microsoft.com/en-us/library/bb979952%28VS.95%29.aspx

答案 2 :(得分:0)