我目前正在开发Silverlight业务应用程序,并且第一次进入验证阶段.当我收到验证错误时,控件将按预期显示错误,但是当我修复验证错误并移动到DataForm中的下一个字段(实际上是Telerik RadDataForm,它的价值)时,我得到一个ArgumentOutOfRangeException抛出我的实体在.g.cs文件中的setter.这是生成的代码:
[DataMember()] [display(Name="Email / User Name")] [RegularExpression("^.*@.*\\..*$",ErrorMessage="Must be a valid e-mail address")] [required()] public string Email { get { return this._email; } set { if ((this._email != value)) { this.OnEmailChanging(value); this.RaiseDataMemberChanging("Email"); this.ValidateProperty("Email",value); // <-- Exception thrown here this._email = value; this.RaiseDataMemberChanged("Email"); this.OnEmailChanged(); } } }
这是导致验证的控件的Xaml:
<telerik:RadDataForm Grid.Row="0" Style="{StaticResource GridPageFormStyle}" x:Name="addForm" EditEnded="AddEnded" Header="Add"> <telerik:RadDataForm.EditTemplate> <DataTemplate> <StackPanel> <telerik:DataFormdatafield DataMemberBinding="{Binding Email,Mode=TwoWay,ValidatesOnExceptions=True,NotifyOnValidationError=True}" Label="E-mail Address" /> <telerik:DataFormComboBoxField DataMemberBinding="{Binding Role,NotifyOnValidationError=True}" ItemsSource="{Binding Roles,ElementName=This}" Label="Role" /> <telerik:DataFormComboBoxField DataMemberBinding="{Binding Partner,NotifyOnValidationError=True}" ItemsSource="{Binding Partners,ElementName=This}" Label="Partner" /> </StackPanel> </DataTemplate> </telerik:RadDataForm.EditTemplate> </telerik:RadDataForm>
这是例外的文本:
{System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument,ExceptionResource resource)}
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。