Пример #1
0
		public static string FormatBindingValue(string bindingText, object bindingSource, BindingFormatter format, bool isResolvedText = false)
		{
			if(string.IsNullOrWhiteSpace(bindingText))
				return bindingText;

			if(bindingText == ".")
				return bindingSource != null ? bindingSource.ToString() : string.Empty;

			var matched = BindingExpressionRegex.IsMatch(bindingText);

			if(matched)
			{
				return BindingExpressionRegex.Replace(bindingText, match =>
				{
					if(match.Success)
					{
						object value = GetMemberValue(bindingSource, match.Groups["path"].Value, false);

						if(format == null)
							return (value == null ? string.Empty : value.ToString());
						else
							return format(value, match.Groups["format"].Value);
					}
					else
						return match.Value;
				});
			}
			else
			{
				if(isResolvedText)
				{
					object value = GetMemberValue(bindingSource, bindingText, false);

					if(value == null)
						return bindingText;

					if(format == null)
						return value.ToString();
					else
						return format(value, string.Empty);
				}

				if(format == null)
					return bindingText;
				else
					return format(bindingText, string.Empty);
			}
		}
Пример #2
0
        public static string FormatBindingValue(string bindingText, object bindingSource, BindingFormatter format, bool isResolvedText = false)
        {
            if (string.IsNullOrWhiteSpace(bindingText))
            {
                return(bindingText);
            }

            if (bindingText == ".")
            {
                return(bindingSource != null?bindingSource.ToString() : string.Empty);
            }

            var matched = BindingExpressionRegex.IsMatch(bindingText);

            if (matched)
            {
                return(BindingExpressionRegex.Replace(bindingText, match =>
                {
                    if (match.Success)
                    {
                        object value = GetMemberValue(bindingSource, match.Groups["path"].Value, false);

                        if (format == null)
                        {
                            return (value == null ? string.Empty : value.ToString());
                        }
                        else
                        {
                            return format(value, match.Groups["format"].Value);
                        }
                    }
                    else
                    {
                        return match.Value;
                    }
                }));
            }
            else
            {
                if (isResolvedText)
                {
                    object value = GetMemberValue(bindingSource, bindingText, false);

                    if (value == null)
                    {
                        return(bindingText);
                    }

                    if (format == null)
                    {
                        return(value.ToString());
                    }
                    else
                    {
                        return(format(value, string.Empty));
                    }
                }

                if (format == null)
                {
                    return(bindingText);
                }
                else
                {
                    return(format(bindingText, string.Empty));
                }
            }
        }