-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMainWindow.xaml.vb
More file actions
92 lines (74 loc) · 3.51 KB
/
MainWindow.xaml.vb
File metadata and controls
92 lines (74 loc) · 3.51 KB
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
Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.ComponentModel
Namespace WpfApplication147
''' <summary>
''' Interaction logic for MainWindow.xaml
''' </summary>
Public Partial Class MainWindow
Inherits Window
Public Sub New()
Me.InitializeComponent()
End Sub
End Class
Public Class TestClass
Implements IDataErrorInfo, INotifyPropertyChanged
Private testStringField As String
Public Property TestString As String
Get
Return testStringField
End Get
Set(ByVal value As String)
testStringField = value
RaisePropertyChanged("TestString")
End Set
End Property
'#Region "INotifyPropertyChanged Members"
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Private Sub RaisePropertyChanged(ByVal [property] As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs([property]))
End Sub
'#End Region
'#Region "IDataErrorInfo Members"
Private ReadOnly Property [Error] As String Implements IDataErrorInfo.[Error]
Get
Return GetError()
End Get
End Property
Private Function GetError() As String
If String.IsNullOrEmpty(TestString) Then Return "ErrorType=Critical;ErrorContent=The value is not provided. Please enter a value"
If TestString.Length < 3 Then Return "ErrorType=Warning;ErrorContent=The value is less than 3 characters. Please enter at least 5 characters"
If TestString.Length < 5 Then Return "ErrorType=Information;ErrorContent=The value is less than 5 characters. Please enter at least 5 characters"
Return String.Empty
End Function
Private ReadOnly Property Item(ByVal columnName As String) As String Implements IDataErrorInfo.Item
Get
If Equals(columnName, "TestString") Then Return GetError()
Return String.Empty
End Get
End Property
'#End Region
End Class
Public Class ErrorContentConverter
Implements IValueConverter
Public Property GetValueTag As String
Public Property Separator As String
'#Region "IValueConverter Members"
Public Function Convert(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As Globalization.CultureInfo) As Object Implements IValueConverter.Convert
If value Is Nothing OrElse Not(TypeOf value Is String) Then Return value
Dim [error] As String = System.Convert.ToString(value, culture)
If String.IsNullOrEmpty([error]) Then Return value
Dim searchString As String = GetValueTag & "="
For Each suberror As String In [error].Split(New String() {Separator}, StringSplitOptions.RemoveEmptyEntries)
If suberror.Contains(searchString) Then Return suberror.Replace(searchString, String.Empty)
Next
Return value
End Function
Public Function ConvertBack(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
Return Nothing
End Function
'#End Region
End Class
End Namespace