Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class ConversionEventArgs
- Inherits EventArgs
- ''' <summary>
- ''' Se restituito come valore, non viene effettuata alcuna operazione sulla source
- ''' o sul target del binding
- ''' </summary>
- Public Shared ReadOnly DoNothing = Binding.DoNothing
- Public Readonly Property Value As Object
- Public Readonly Property TargetType As Type
- Public ReadOnly Property Parameter As Object
- Public ReadOnly Property Culture As Globalization.CultureInfo
- Public Property ConvertedValue As Object
- Public Sub New(d_value As Object, d_targetType As Type, d_parameter As Object, d_culture As Globalization.CultureInfo)
- Value = d_value
- TargetType = d_targetType
- Parameter = d_parameter
- Culture = d_culture
- End Sub
- End Class
- ''' <summary>
- ''' Converter il cui comportamento è delegato ai metodi che vengono
- ''' collegati agli eventi Convert e ConvertBack.
- ''' </summary>
- ''' <remarks>
- ''' Pensato per essere usato dove la conversione richiesta è molto specifica,
- ''' es: da variabile di stato a etichetta. Dove applicabile è più manutenibile
- ''' usare i converter generici.
- ''' </remarks>
- Public Class DelegateConverter
- Implements IValueConverter
- ''' <summary>
- ''' Usato come valore di default nella proprietà ConvertedValue.
- ''' Se ancora presente alla fine della conversione, provoca l'esecuzione
- ''' delle operazioni di ripiego per la conversione
- ''' </summary>
- Private Shared ReadOnly NotSet As New Object
- ''' <summary>
- ''' Chiamato internamente da Convert per effettuare la conversione verso il target
- ''' </summary>
- Public Event Converting As EventHandler(Of ConversionEventArgs)
- ''' <summary>
- ''' Chiamato internamente da ConvertBack per effettuare la conversione verso la source
- ''' </summary>
- Public Event ConvertingBack As EventHandler(Of ConversionEventArgs)
- Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.Convert
- Dim _args As New ConversionEventArgs(value, targetType, parameter, culture) With { .ConvertedValue = NotSet }
- Try
- RaiseEvent Converting(Me, _args)
- Catch ex As Exception
- ' Loggare?
- End Try
- If _args.ConvertedValue Is NotSet
- Return DefaultConversion(value, targetType, parameter, culture)
- Else
- Return _args.ConvertedValue
- End If
- End Function
- Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
- Dim _args As New ConversionEventArgs(value, targetType, parameter, culture) With { .ConvertedValue = NotSet }
- Try
- RaiseEvent ConvertingBack(Me, _args)
- Catch ex As Exception
- ' Loggare?
- End Try
- If _args.ConvertedValue Is NotSet
- Return DefaultConversion(value, targetType, parameter, culture)
- Else
- Return _args.ConvertedValue
- End If
- End Function
- ''' <summary>
- ''' L'operazione di conversione di default, ossia restituire il valore com'è
- ''' </summary>
- ''' <param name="value"></param>
- ''' <param name="targetType"></param>
- ''' <param name="parameter"></param>
- ''' <param name="culture"></param>
- ''' <returns></returns>
- Private Function DefaultConversion(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object
- Return value
- End Function
- End Class
Add Comment
Please, Sign In to add comment