4. План на курса
Обща информация, определения
Сценарий за разработка
Разработка на базата данни и обектния домейн
Създаване на функционалностите за работа със
студентски данни
Създаване на формуляр за редакция
• Разработка на функционалностите за работа с
оценки
18. Metro UI
• Не се подчинява на концепцията „физически
прозорец“
• „Съдържанието е господар“ / “Content before
chrome”
• Една задача на екран
• Големи контроли, удобни и при работа с
устройства, реагиращи на докосване
29. Поле за факултетен номер
<TextBox
Text="{Binding Path=StudentID,Mode=TwoWay}"
IsEnabled="{Binding Path=IsNew}"
Grid.Column="1"
MinWidth="60"
Margin="8" />
30. Поле за собствено име
<TextBox
Text="{Binding Path=FirstName,Mode=TwoWay}"
Grid.Column="1" Grid.Row="1"
Grid.ColumnSpan="2"
Margin="8" />
31. Поле за фамилия
<TextBox
Text="{Binding Path=LastName, Mode=TwoWay}"
Grid.Column="1" Grid.Row="2"
Grid.ColumnSpan="2"
Margin="8" />
38. Имплементиране на IDataErrorInfo
Public Class StudentEditViewModel
Inherits ViewModelBase
Implements IStudentEditViewModel
Implements IInterestedInStudent
Implements IDataErrorInfo
[…]
End Class
39. Свойството Error
Public ReadOnly Property [Error] As String
Implements IDataErrorInfo.Error
Get
Return String.Empty
End Get
End Property
40. Помощната функция
Private Function TestString(
regEx As String,
value As String,
message As String
) As String
If value IsNot Nothing Then
Dim regExp As New Regex(regEx)
If Not regExp.IsMatch(value) Then
Return message
End If
End If
Return String.Empty
End Function
41. Свойството Item
Default Public ReadOnly Property
Item(columnName As String) As String Implements
IDataErrorInfo.Item
Get
Select Case columnName
Case "StudentID"
Case "FirstName"
Case "LastName"
End Select
Return String.Empty
End Get
End Property
42. Свойството Item
[…]
Select Case columnName
Case "StudentID"
Return TestString("^d{6}$", StudentID,
"Некоректно въведен факултетен номер")
[…]
43. Свойството Item
[…]
Select Case columnName
Case "FirstName"
Return TestString("^[p{IsCyrillic}]{3,50}$",
FirstName, "Некоректно въведено собствено име")
[…]
44. Свойството Item
[…]
Select Case columnName
Case "LastName"
Return TestString("^[p{IsCyrillic}]{3,100}$",
LastName, "Некоректно въведена фамилия")
[…]
45. 2ри обработчик на командата
Private Function canSaveStudent() As Boolean
Return IsChanged _
AndAlso Me("StudentID") = String.Empty _
AndAlso Me("FirstName") = String.Empty _
AndAlso Me("LastName") = String.Empty
End Function