【发布时间】:2009-09-29 21:43:08
【问题描述】:
为交叉发帖道歉(我在Silverlight Forum 上问过这个问题,但没有得到回应)
我有一个实体,我正在尝试对其使用验证,所以我装饰了一个属性,如下所示:
[Required]
[StringLength(10)]
public string Code
{
get
{
return this.code;
}
set
{
if (this.code != value)
{
this.code = value;
this.SendPropertyChanged("Code");
}
}
}
我有一个绑定到网格的这些对象的列表。如果我输入一个空条目,它会显示验证错误。如果我输入的代码太长,我会收到验证错误。完美的!除了...
我希望能够阻止用户保存实体,因此我将以下内容添加到我的实体中:
public bool IsValid()
{
try
{
this.Validate();
}
catch
{
return false;
}
return true;
}
public void Validate()
{
var ctx = new ValidationContext(this, null, null);
Validator.ValidateObject(this, ctx);
}
当我去保存时,我在每个对象上调用 IsValid 方法,如果它为假则不保存。 这适用于所需的属性(如果 Code 为空,则不会保存)但不适用于 StringLength(我可以使用任何长度的代码保存)。
我在这里的一个简单项目中复制了这个:
http://walkersretreat.co.nz/files/Slvalidation.zip
谁能帮忙?
谢谢!
标记
【问题讨论】:
标签: silverlight validation silverlight-3.0