Ответ 1
Вы пробовали return value.ToString().Replace(' ', System.Convert.ToChar(160));
?
Это прекрасно работает и правильно вставляет неразрывные пробелы в строку:
<TextBlock Text="Non Breaking Text Here"></TextBlock>
Но мне действительно нужно заменить пробелы неразрывными пробелами во время привязки данных. Поэтому я написал простой преобразователь значений, который заменяет пробелы " 
" . Он действительно заменяет пробелы " 
" , но " 
" отображается буквально, а не отображается как неразрывное пространство. Это мой конвертер:
public class SpaceToNbspConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.ToString().Replace(" ", " ");
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
Кто-нибудь знает, почему он работает в XAML, но не в коде?
Вы пробовали return value.ToString().Replace(' ', System.Convert.ToChar(160));
?
В коде синтаксис для экранирования символов Unicode отличается от XAML:
XAML:  
C#: \x00A0
Итак, это должно было работать в коде:
return value.ToString().Replace(" ", "\xA0");
Причина Char работает, а строка не указана - это то, что строка выводится при визуализации.