2
當我不喜歡用數據形和DataGrid數據控件是有像[必需]屬性的任何使用,[StringLength]我的實體?這些可以用於上述數據控制之外的驗證嗎?Silverlight和DataAnnotations
如果是這樣,你能指出我的一些例子或文檔。如果有任何驗證錯誤,我想阻止用戶按OK按鈕,並且希望避免拋出setter異常(可能?)。
當我不喜歡用數據形和DataGrid數據控件是有像[必需]屬性的任何使用,[StringLength]我的實體?這些可以用於上述數據控制之外的驗證嗎?Silverlight和DataAnnotations
如果是這樣,你能指出我的一些例子或文檔。如果有任何驗證錯誤,我想阻止用戶按OK按鈕,並且希望避免拋出setter異常(可能?)。
是的,那些可用於驗證,而無需使用UI控件。 Brad Abrams有一個blog post,詳細介紹瞭如何將這些屬性用於數據表單,但似乎應該能夠將其帖子的UI部分與核心驗證邏輯分開。
從帖子,這裏是用手工添加驗證邏輯的樣本屬性。
[DataMember()]
[Key()]
[ReadOnly(true)]
public int EmployeeID
{
get
{
return this._employeeID;
}
set
{
if ((this._employeeID != value))
{
ValidationContext context = new ValidationContext(
this, null, null);
context.MemberName = "EmployeeID";
Validator.ValidateProperty(value, context);
this._employeeID = value;
this.OnPropertyChanged("EmployeeID");
}
}
}
如果用戶修改了某個存在的值或輸入了一個值,這很好。 – DaveB 2009-08-28 22:23:59