public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { try { int parametersCount = _isStaticUid ? values.Length - 1 : values.Length - 2; if (string.IsNullOrEmpty(_uid)) { if (values[1] == null) { throw new ArgumentNullException( "Uid must be provided as the first Binding element, and must not be null"); } _isStaticUid = false; _uid = values[1].ToString(); --parametersCount; } LanguageDictionary dictionary = ResolveDictionary(); object translatedObject = dictionary.Translate((string)_defaultValue, (string)_namespace); if (translatedObject != null && parametersCount != 0) { var parameters = new object[parametersCount]; Array.Copy(values, values.Length - parametersCount, parameters, 0, parameters.Length); try { translatedObject = string.Format(translatedObject.ToString(), parameters); } catch (Exception) { #region Trace Debug.WriteLine(string.Format("LanguageConverter failed to format text {0}", translatedObject)); #endregion } } return(translatedObject); } catch (Exception ex) { #region Trace Debug.WriteLine(string.Format("LanguageConverter failed to convert text: {0}", ex.Message)); #endregion } return(null); }