我需要在Silverlight 3 DataGrid中找到一个单元格/列,以便我可以在其上调用UpdateSource。我怎么能这样做?
这就是为什么,如果您有兴趣:
我在Silverlight 3应用程序中有一个DataGrid,它显示用DataAnnotations属性(如[Required])修饰的对象,以进行验证。我正在从导入的CSV文件填充DataGrid。导入的行将无效,因为CSV不包含所有必填字段。
验证有效,如果用户编辑数据网格中的字段或我调用submit(它是WCF RIA Services应用程序)。我想要做的是在加载数据网格后立即触发验证。从大量阅读来看,似乎没有内置的方法来做到这一点。
我认为如果我可以在datagrid的第一行找到该字段并调用UpdateSource(),我将触发验证错误。如何导航到手动定义的数据网格?
答案 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)