/
FileDialogsViewModel.vb
85 lines (69 loc) · 2.72 KB
/
FileDialogsViewModel.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
Imports DevExpress.Mvvm
Imports DevExpress.Mvvm.DataAnnotations
Imports DevExpress.Mvvm.POCO
Imports System.IO
Imports System.Linq
Namespace FileDialogServicesSample.ViewModels
<POCOViewModel>
Public Class FileDialogsViewModel
'#Region "Common properties"
Public Overridable Property Filter As String
Public Overridable Property FilterIndex As Integer
Public Overridable Property Title As String
Public Overridable Property DialogResult As Boolean
Public Overridable Property ResultFileName As String
Public Overridable Property FileBody As String
'#End Region
'#Region "SaveFileDialogService specific properties"
Public Overridable Property DefaultExt As String
Public Overridable Property DefaultFileName As String
Public Overridable Property OverwritePrompt As Boolean
'#End Region
Protected ReadOnly Property SaveFileDialogService As ISaveFileDialogService
Get
Return GetService(Of ISaveFileDialogService)()
End Get
End Property
Protected ReadOnly Property OpenFileDialogService As IOpenFileDialogService
Get
Return GetService(Of IOpenFileDialogService)()
End Get
End Property
Public Sub New()
Filter = "Text Files (.txt)|*.txt|All Files (*.*)|*.*"
FilterIndex = 1
Title = "Custom Dialog Title"
DefaultExt = "txt"
DefaultFileName = "Document1"
OverwritePrompt = True
End Sub
Public Sub Open()
OpenFileDialogService.Filter = Filter
OpenFileDialogService.FilterIndex = FilterIndex
DialogResult = OpenFileDialogService.ShowDialog()
If Not DialogResult Then
ResultFileName = String.Empty
Else
Dim file As IFileInfo = OpenFileDialogService.Files.First()
ResultFileName = file.Name
Using stream = file.OpenText()
FileBody = stream.ReadToEnd()
End Using
End If
End Sub
Public Sub Save()
SaveFileDialogService.DefaultExt = DefaultExt
SaveFileDialogService.DefaultFileName = DefaultFileName
SaveFileDialogService.Filter = Filter
SaveFileDialogService.FilterIndex = FilterIndex
DialogResult = SaveFileDialogService.ShowDialog()
If Not DialogResult Then
ResultFileName = String.Empty
Else
Using stream = New StreamWriter(SaveFileDialogService.OpenFile())
stream.Write(FileBody)
End Using
End If
End Sub
End Class
End Namespace