This repository has been archived by the owner on Oct 9, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Form1.vb
52 lines (48 loc) · 1.88 KB
/
Form1.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Imports Microsoft.VisualBasic
Imports System
Imports DXSample
Imports DevExpress.Xpo
Imports DevExpress.XtraGrid
Imports System.Windows.Forms
Imports System.Collections.Generic
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraEditors.Controls
Namespace Q296004
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
Private Sub gridView1_ValidatingEditor(ByVal sender As Object, ByVal e As BaseContainerValidateEditorEventArgs) Handles gridView1.ValidatingEditor
Dim view As GridView = CType(sender, GridView)
Dim row As XPBaseObject = CType(view.GetFocusedRow(), XPBaseObject)
Dim customValues As New Dictionary(Of String, Object)()
customValues.Add(view.FocusedColumn.FieldName, e.Value)
e.ErrorText = New Validator(row, customValues).Validate(view.FocusedColumn.FieldName)
e.Valid = String.IsNullOrEmpty(e.ErrorText)
End Sub
Private Sub gridView1_ValidateRow(ByVal sender As Object, ByVal e As ValidateRowEventArgs) Handles gridView1.ValidateRow
If e.RowHandle <> GridControl.NewItemRowHandle Then
Return
End If
Dim customValues As New Dictionary(Of String, Object)()
Dim view As GridView = CType(sender, GridView)
For Each col As GridColumn In view.Columns
customValues.Add(col.FieldName, view.GetRowCellValue(e.RowHandle, col))
Next col
Dim validator As New Validator(CType(e.Row, XPBaseObject), customValues)
For Each col As GridColumn In (CType(sender, GridView)).Columns
e.ErrorText = validator.Validate(col.FieldName)
If (Not String.IsNullOrEmpty(e.ErrorText)) Then
e.Valid = False
Return
End If
Next col
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles MyBase.FormClosing
unitOfWork1.CommitChanges()
End Sub
End Class
End Namespace