예제 #1
0
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (targetType == typeof(string))
            {
                if (value == null)
                {
                    value = false;
                }

                if (value is bool)
                {
                    bool boolValue = (bool)value;

                    ChoBooleanFormatSpec booleanFormat = parameter.GetValueAt(0, ChoTypeConverterFormatSpec.Instance.BooleanFormat);
                    switch (booleanFormat)
                    {
                    case ChoBooleanFormatSpec.YOrN:
                        return(boolValue ? "Y" : "N");

                    case ChoBooleanFormatSpec.TrueOrFalse:
                        return(boolValue ? "True" : "False");

                    case ChoBooleanFormatSpec.YesOrNo:
                        return(boolValue ? "Yes" : "No");

                    default:
                        return(boolValue ? "1" : "0");
                    }
                }
            }

            return(value);
        }
예제 #2
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value is string)
            {
                string txt = value as string;
                txt = txt.NTrim();

                if (txt.IsNull())
                {
                    return(false);
                }

                ChoBooleanFormatSpec booleanFormat = parameter.GetValueAt(0, ChoTypeConverterFormatSpec.Instance.BooleanFormat);
                switch (booleanFormat)
                {
                case ChoBooleanFormatSpec.YOrN:
                    if (txt.Length == 1)
                    {
                        return(txt[0] == 'Y' || txt[0] == 'y' ? true : false);
                    }
                    else
                    {
                        return(false);
                    }

                case ChoBooleanFormatSpec.TrueOrFalse:
                    return(String.Compare(txt, "true", true) == 0 ? true : false);

                case ChoBooleanFormatSpec.YesOrNo:
                    return(String.Compare(txt, "yes", true) == 0 ? true : false);

                case ChoBooleanFormatSpec.ZeroOrOne:
                    if (txt.Length == 1)
                    {
                        return(txt[0] == '1' ? true : false);
                    }
                    else
                    {
                        return(false);
                    }

                default:
                    if (txt.Length == 1)
                    {
                        return(txt[0] == 'Y' || txt[0] == 'y' || txt[0] == '1' ? true : false);
                    }
                    else
                    {
                        return(String.Compare(txt, "true", true) == 0 || String.Compare(txt, "yes", true) == 0 ? true : false);
                    }
                }
            }
            else
            {
                return(value);
            }
        }