Imports System.IO Imports EgtUILib Public Class NameDialogVM Inherits VMBase Private m_NameVerifyer As Func(Of String, Boolean) Public WriteOnly Property NameVerifyer As Func(Of String, Boolean) Set(value As Func(Of String, Boolean)) m_NameVerifyer = value End Set End Property Private m_Title As String Public Property Title As String Get Return m_Title End Get Set(value As String) m_Title = value End Set End Property Private m_VerifyChars As Boolean = True Public WriteOnly Property VerifyChars As boolean Set(value As Boolean) m_VerifyChars = value End Set End Property Private m_Name As String Public Property Name As String Get Return m_Name End Get Set(value As String) If m_VerifyChars Then Dim TempName As String = value For Each cInvalid In Path.GetInvalidFileNameChars() TempName = TempName.Replace(cInvalid, "") Next If TempName.Length = value.Length Then m_Name = value Else MessageBox.Show(EgtMsg(31404), EgtMsg(31407), MessageBoxButton.OK, MessageBoxImage.Error) 'EgtMessageBoxV.Show(Application.Current.MainWindow, EgtMsg(31404), ' I caratteri \ / : * ? " < > | non sono permessi ' EgtMsg(31407), ' Cancella ' MessageBoxButton.OK, MessageBoxImage.Error) m_Name = TempName End If Else m_Name = value End If NotifyPropertyChanged(NameOf(Name)) End Set End Property #Region "Messages" Public ReadOnly Property SaveMsg As String Get Return EgtMsg(30001) ' Salva End Get End Property Public ReadOnly Property CancelMsg As String Get Return EgtMsg(30002) ' Annulla End Get End Property #End Region Friend Function Save() As Boolean Return m_NameVerifyer(m_Name) End Function End Class