SL - 整理 - 将验证做到资源文件中

<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
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

icewizardry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值