<TextBox AutomationProperties.AutomationId="PA_IssuerViews_Issuer_TextBox_Description" Name="TextBoxDescription" Margin="280,20,0,0"
Text="{Binding Path=CoreData.Description, Mode=TwoWay, Converter={StaticResource Validator}, ConverterParameter=0:AttributeIssuer_IssuerDescription, NotifyOnValidationError=True, ValidatesOnExceptions=True}"
Style="{StaticResource StyleIssuerDescription}"
ToolTipService.ToolTip="{Binding Source={StaticResource IssuerStringLibrary},Converter={StaticResource Localizer},ConverterParameter=lookup_tooltip_description}"
/>
public class PropertyValidator : IValueConverter
{
private bool _suspended = false;
public void SuspendValidations()
{
_suspended = true;
}
public void ResumeValidations()
{
_suspended = false;
}
public PropertyValidator()
{
}
public const char Separator = ':';
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (!_suspended)
{
string key = (string)parameter;
if (!string.IsNullOrEmpty(key) && null != value)
{
string[] fields = key.Split(Separator);
int mandatory = 0;
if (fields.Length >= 2)
{
int.TryParse(fields[0], out mandatory);
string exceptionMessage = null;
if (fields.Length >= 3)
{
exceptionMessage = fields[2];
}
ResourceValidator.Validate(value != null ? value.ToString() : null, fields[1], mandatory == 0, exceptionMessage);
}
}
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string key = (string)parameter;
string[] fields = key.Split(Separator);
if (fields[1] == "PrivilegeAssignment_StartDateTime" || fields[1] == "PrivilegeAssignment_EndDateTime")
{
return DateTime.Parse(value.ToString());
}
if (value.Equals("Select ..."))
{
return string.Empty;
}
return value;
}
#endregion
}
Style="{StaticResource StyleIssuerDescription}"
ToolTipService.ToolTip="{Binding Source={StaticResource IssuerStringLibrary},Converter={StaticResource Localizer},ConverterParameter=lookup_tooltip_description}"
/>
public class PropertyValidator : IValueConverter
{
private bool _suspended = false;
public void SuspendValidations()
{
_suspended = true;
}
public void ResumeValidations()
{
_suspended = false;
}
public PropertyValidator()
{
}
public const char Separator = ':';
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (!_suspended)
{
string key = (string)parameter;
if (!string.IsNullOrEmpty(key) && null != value)
{
string[] fields = key.Split(Separator);
int mandatory = 0;
if (fields.Length >= 2)
{
int.TryParse(fields[0], out mandatory);
string exceptionMessage = null;
if (fields.Length >= 3)
{
exceptionMessage = fields[2];
}
ResourceValidator.Validate(value != null ? value.ToString() : null, fields[1], mandatory == 0, exceptionMessage);
}
}
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string key = (string)parameter;
string[] fields = key.Split(Separator);
if (fields[1] == "PrivilegeAssignment_StartDateTime" || fields[1] == "PrivilegeAssignment_EndDateTime")
{
return DateTime.Parse(value.ToString());
}
if (value.Equals("Select ..."))
{
return string.Empty;
}
return value;
}
#endregion
}