2011-02-17 69 views
1

我來自Delphi編程世界,我開始學習Silverlight,實體框架,RIA服務,MVVM和所有這些東西。有沒有在Silverlight中的控件中進行簡單驗證的方法

我想知道是否有某種技術,控件,方法,模式或其他方法,允許您在用戶輸入時在客戶端進行一些簡單的驗證或驗證。在Delphi世界中,控件(DB-Aware)具有這樣的能力,他們知道哪些是他們正在顯示的數據的類型,您可以配置最大長度,通常他們知道一些關於數據的信息一個浮點類型不允許多於一個點,等等。

我的理解是不同的,你必須在你的業務類,你的服務,你的模型,你的域做驗證,這取決於你使用的是什麼,也取決於你的數據庫。

任何想法的建議,可以幫助這個?

對不起,我的英語不是我的主要語言。

回答

1

驗證在Silverlight是緊密聯繫在一起的結合,並且是最常見的兩種主要方式之一進行:

  • 客戶端驗證使用DataAnnotation生成的驗證在屬性setter
  • 服務器端驗證當一個實體致力於商店時完成

客戶端驗證器依賴於驗證失敗時在setter中拋出的異常。驗證器失敗時,服務器端驗證會返回通知。這兩個binidng選項是ValidatesOnExceptions(客戶端)和NotifyOnValidationError(服務器端)。

這聽起來像是你想在輸入時進行「實時」驗證。最實際的應用是格式驗證,例如電子郵件地址或社會安全號碼。這通常使用正則表達式驗證器完成。

簡短的故事是沒有,這種類型的驗證沒有「開箱即用」,但它可以完成。驗證在使用DataAnnotations屬性級別應用:

http://msdn.microsoft.com/en-us/library/dd901590(v=vs.95).aspx

可以使用RegularExpressionAttribute來驗證文本屬性對正則表達式。但是,在正常情況下,只有在更新後纔會驗證您的值,這意味着僅當您從正在驗證的控件中退出時纔會進行驗證。您可以使用UpdateSourceTrigger=Explicit裝訂選項來驗證您鍵入:

http://msdn.microsoft.com/en-us/library/system.windows.data.binding.updatesourcetrigger(v=vs.95).aspx

下面是數據驗證在Silverlight中一個很好的概述:

http://www.devproconnections.com/article/silverlight-development/Silverlight-Data-Validation.aspx

+0

謝謝你,Dave 所以不是真正的 - 時間驗證:(只有正則表達式,哇,但如果是一件簡單的事情,只是一種方式來告訴文本框看起來不允許輸入超過20個字符長度的文本,難道是這樣的: 拉蒙 – 2011-02-17 19:41:47

相關問題