Validation with WPF Silverlight Validation with WPF Silverlight
- Slides: 38
Validation with WPF & Silverlight グレープシティ株式会社 八巻 雄哉
Validation with WPF & Silverlight 検証の基本 4
検証の基本 Binding. Validation. Rulesプロパティ Validation. Ruleクラス Validation. Errors添付プロパティ Validation. Errorクラス 検証はValidation. Rulesプロパティに設定 されたValidation. Ruleに基づいて行われる。 検証エラーの場合には、Errors添付プロパティに Validation. Errorが追加される。 5
Validation. Rule ルールは大きく分けると 3つ WPF Silverlight Exception. Validation. Rule (例外ベースの入力検証) ○ ○ Data. Error. Validation. Rule (IData. Error. Info入力検証) ○ - Validation. Ruleを継承したカ スタムクラス ○ - 7
ルールの設定 簡略記法 Text="{Binding Name, Validates. On. Data. Errors=True}" <Text. Box> <Text. Box. Text> <Binding Path="Name"> <Binding. Validation. Rules> <Data. Error. Validation. Rule/> </Binding. Validation. Rules> </Binding> </Text. Box. Text> </Text. Box> 8
Bindingオブジェクト Customerオブジェクト 12345 <Binding. Validation. Rules> <Data. Error. Validation. Rule/> </Binding. Validation. Rules> Text. BoxのValidation. Errors添付プロパティにValidation. Errorが追加される。 Validation. Errors添付プロパティ 10
Validation with WPF & Silverlight エラー表示の方法 11
エラー表示の方法 Error. Template 添付プロパティ Validation. States (Visual. State. Group) Has. Error 添付プロパティ イベント WPF Silverlight ○ - WPF 4で追加? ○ ○ Validation. Error 添付イベント ○ Framework. Elemen t. Binding. Validation Errorイベント 12
Error. Template添付プロパティ Validation. Error. Template(Control. Template型) デフォルトのError. Template <Validation. Error. Template> <Control. Template> <Border. Brush="#FFFF 0000" Border. Thickness="1, 1, 1, 1"> <Adorned. Element. Placeholder /> </Border> </Control. Template> </Validation. Error. Template> Adorned. Element. PlaceholderはError. Templateが 適用される要素(今回の場合Text. Box)を表す。 13
Has. Error添付プロパティ Validation. Has. Error Validation. Errorが存在する場合はTrue <Style Target. Type="Text. Box"> <Style. Triggers> <Trigger Property="Validation. Has. Error" Value="True"> <Setter Property="Tool. Tip" Value="{Binding Relative. Source={Relative. Source Self}, Path=(Validation. Errors)[0]. Error. Content}"/> <Setter Property="Background" Value="Red"/> </Trigger> </Style. Triggers> </Style> 16
イベント WPF Validation. Error添付イベント Silverlight Framework. Element. Binding. Validation. Errorイベント Validation. Errorが追加/削除された際に 発生するイベント Binding. Notify. On. Validation. Errorプロパティを Trueに設定する必要あり。 17
Validation. Error. Event. Action Validation. Error. Event. Args. Action プロパティ Validation. Error. Event. Action. Added 新しいValidation. Errorオブジェクトが検出された。 Validation. Error. Event. Action. Removed 既存のValidation. Errorが削除された。 If e. Action = Validation. Error. Event. Action. Added Then ‘ 検証エラーが発生した時の処理 Else. If e. Action = Validation. Error. Event. Action. Removed Then ‘ 検証エラーがなくなった時の処理 End If 18
Validation with WPF & Silverlight Validation. Ruleを継承した カスタムクラス 19
Validation. Ruleを継承した カスタムクラス Validation. Ruleクラスを継承し、 Validateメソッドをオーバーライド Public Class IDValidation Inherits Validation. Rule Public Overrides Function Validate(By. Val value As Object, By. Val culture. Info As System. Globalization. Culture. Info) As System. Windows. Controls. Validation. Result Dim result As Validation. Result If value Is Nothing Then result = New Validation. Result(False, "IDは必須入力項目です。") Else. If (Regex. Is. Match(value, "^[0 -9 A-Z]{4}$") = False) Then 20
Validation with WPF & Silverlight 検証ルールの実行タイミング 21
Validation with WPF & Silverlight インスタンス単位の検証 23
Binding. Groupプロパティ (WPFのみ) 以下の条件のどちらかを満たしている場合、 Bindingがグループ化される。 BindingのソースとBinding. Groupを設定した要素の Data. Contextが同じ BindingのBinding. Group. Nameプロパティが Binding. GroupのNameと同じ <Grid. Binding. Group> <Binding. Group. Validation. Rules> <local: Object. Validation/> </Binding. Group. Validation. Rules> </Binding. Group> </Grid. Binding. Group> 24
編集トランザクション Private Submit. Button_Click(By. Val sender As System. Object, By. Val e As System. Windows. Routed. Event. Args) If Layout. Root. Binding. Group. Commit. Edit() Then Message. Box. Show("登録されました。") Layout. Root. Binding. Group. Begin. Edit() End If End Sub Private Sub Cancel. Button_Click(By. Val sender As System. Object, By. Val e As System. Windows. Routed. Event. Args) Layout. Root. Binding. Group. Cancel. Edit() Layout. Root. Binding. Group. Begin. Edit() End Sub 27
Validation with WPF & Silverlight Input. Man for WPF CTP 28
Input. Man for WPF CTP 7種のコンバーター Boolean. To. Visibility. Converter Date. Format. Converter Date. Time. Difference. Value. Converter Decimal. Difference. Value. Converter Mask. Format. Converter Number. Format. Converter Object. To. Date. Time. Converter 2種のコンポーネント Gc. Ime. Manager(IMEマネージャ) Gc. Validation. Manager(検証マネージャ) Gc. Validation. ManagerはBinding使用の有無に 関わらず、任意のプロパティ値を検証可能 31
Hello Input. Man Validation Gc. Validationmanagerクラス Validation. Item添付プロパティ <Text. Box x: Name="Text. Box 1" im: Gc. Validation. Manager. Validation. Item="{Static. Resource Validation. Item_ID}"/> <im: Gc. Validation. Indicator Element. Name="Text. Box 1"/> <Grid. Resources> <im: Validation. Item x: Key="Validation. Item_ID" x: Shared="False" Validated. Property="Text"> <im: Validation. Item. Validation. Rules> <im: Regular. Expression. Rule Expression="^[0 -9 A-Z]{4}$" Error. Content="ID は半角英数大文字 4 文字です。" /> </im: Validation. Item. Validation. Rules> </im: Validation. Item> </Grid. Resources> 33
標準Validationとの連携 Bindingオブジェクト Customerオブジェクト 標準Validationの Has. Errorを監視 12345 Gc. Validation. Manage r Errorsプロパティ 発生したエラーをマージ ※ Gc. Validation. Managerの Include. Binding. Validation. Resultプロパティ をTrueに設定 35
38
- Validationrule wpf
- Silverlight ppt
- Silverlight edge
- Silverlight toolkit
- Fpug
- Silverlight downloader
- Silverlight toolkit
- Silverlight 5 toolkit download
- Wpf asystent
- Wpf step by step
- Prism windows 10
- Wpf tips and tricks
- Wpf tutorial point
- Wpf dersleri
- Mfc vs wpf
- Wpf vs uwp
- Wpf navigationwindow
- Wpf dependency property
- Wpf asystent
- Wpfapp
- Wpf navigate to another page
- Prism in wpf
- Wpf graphics
- Wpf touchdown
- Wpf linear gradient brush
- Linear gradient brush wpf
- Andrew wigley
- Wpf flow layout
- Wpf design patterns
- 8wpf
- Object routed
- Wpf
- Prospective validation
- Ton validation
- Nric last 4 digits
- Pricing model validation
- Compartmentalization interdependency effort validation r
- Arelle
- A nested model for visualization design and validation