This repository has been archived by the owner on Dec 21, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
MainWindow.xaml.vb
136 lines (129 loc) · 4.51 KB
/
MainWindow.xaml.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
Imports Microsoft.VisualBasic
Imports DevExpress.Mvvm.DataAnnotations
Imports System
Imports System.Collections.Generic
Imports System.Collections.ObjectModel
Imports System.ComponentModel.DataAnnotations
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Navigation
Imports System.Windows.Shapes
Namespace colGeneration
''' <summary>
''' Interaction logic for MainWindow.xaml
''' </summary>
Partial Public Class MainWindow
Inherits Window
Public Sub New()
InitializeComponent()
MetadataLocator.Default = MetadataLocator.Create().AddMetadata(GetType(Customer), GetType(DataAnnotationsElement1Metadata))
Dim customers As New ObservableCollection(Of Customer)()
For i As Integer = 1 To 9
customers.Add(New Customer() With {.ID = i, .Name = "Name" & i, .Phone = "00-00-0" & i Mod 10, .HiredAt = DateTime.Now.AddDays(-i)})
Next i
grid.ItemsSource = customers
Dim customers2 As New ObservableCollection(Of Customer2)()
For i As Integer = 1 To 9
customers2.Add(New Customer2() With {.ID = i, .Name = "Name" & i, .Phone = "00-00-0" & i Mod 10, .HiredAt = DateTime.Now.AddDays(-i)})
Next i
grid2.ItemsSource = customers2
End Sub
End Class
Public Class DataAnnotationsElement1Metadata
Implements IMetadataProvider(Of Customer)
Private Sub BuildMetadata(ByVal builder As MetadataBuilder(Of Customer)) Implements IMetadataProvider(Of Customer).BuildMetadata
builder.Property(Function(p) p.ID).NumericMask("N0")
builder.Property(Function(p) p.Name).DisplayFormatString("name is: {0}", True)
builder.Property(Function(p) p.Phone).RegExMask("\d{2}-\d{2}-\d{2}")
builder.Property(Function(p) p.HiredAt).DateTimeMask("dd/MM/yyyy")
End Sub
End Class
Public Class Customer
Private privateID As Integer
Public Property ID() As Integer
Get
Return privateID
End Get
Set(ByVal value As Integer)
privateID = value
End Set
End Property
Private privateName As String
Public Property Name() As String
Get
Return privateName
End Get
Set(ByVal value As String)
privateName = value
End Set
End Property
Private privatePhone As String
Public Property Phone() As String
Get
Return privatePhone
End Get
Set(ByVal value As String)
privatePhone = value
End Set
End Property
Private privateHiredAt As DateTime
Public Property HiredAt() As DateTime
Get
Return privateHiredAt
End Get
Set(ByVal value As DateTime)
privateHiredAt = value
End Set
End Property
End Class
Public Class Customer2
Private privateID As Integer
<NumericMask(Mask:="N0")> _
Public Property ID() As Integer
Get
Return privateID
End Get
Set(ByVal value As Integer)
privateID = value
End Set
End Property
Private privateName As String
<DisplayFormat(DataFormatString:="name is: {0}")> _
Public Property Name() As String
Get
Return privateName
End Get
Set(ByVal value As String)
privateName = value
End Set
End Property
Private privatePhone As String
<RegExMask(Mask:="\d{2}-\d{2}-\d{2}")> _
Public Property Phone() As String
Get
Return privatePhone
End Get
Set(ByVal value As String)
privatePhone = value
End Set
End Property
Private privateHiredAt As DateTime
<DateTimeMask(Mask:="dd/MM/yyyy")> _
Public Property HiredAt() As DateTime
Get
Return privateHiredAt
End Get
Set(ByVal value As DateTime)
privateHiredAt = value
End Set
End Property
End Class
End Namespace