String не разрешает привязку, потому что она не является DependencyObject (и не реализует INotifyPropertyChanged)
, но почему бы вам просто не связать напрямую со значением в ViewModel?
, если вы не можете привязатьViewModel (подумайте о RelativeSource с поиском типа Parent), вы можете реализовать оболочку (которая реализует INotifyPropertyChanged для получения изменений в объекте)
Пример класса оболочки:
public class BindWrapper<T> : INotifyPropertyChanged
{
private T _Content;
public T Content
{
get
{
return _Content;
}
set
{
_Content = value;
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs("Content"));
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
как создать экземпляри связать в XAML:
<Window.Resources>
<local:BindWrapper x:Key="wrapper" x:TypeArguments="System:String">
<local:BindWrapper.Content>
<System:String>huuu</System:String>
</local:BindWrapper.Content>
</local:BindWrapper>
</Window.Resources>
<TextBlock Text="{Binding Source={StaticResource wrapper}, Path=Content}" />