Ваша проблема определенно связана с вашим DataContext. Расширение {Binding} должно знать, где находится свойство, к которому вы привязываете. Расположение по умолчанию, на которое он смотрит, - это элементы DataContext, которые по умолчанию всегда устанавливаются на DataContext его родительского элемента. Если вы проведете DataContext вверх по логическому дереву к родительскому окну, DataContext будет нулевым (поскольку DataContext вашего окна будет нулевым). Поэтому ваш {Binding} в вашем текстовом блоке говорит: «Привязать свойство« Мой текст »к свойству Проблема моего DataContext ..., которое является нулевым».
Есть несколько способов решить эту проблему. Можно было бы сделать так, как упоминал Джоби, и установить свойство Element вашей привязки так, чтобы оно указывало на окно, где свойство DependencyProperty определено следующим образом:
<TextBlock Text="{Binding Path=Problem,ElementName=_window}" />
Другой вариант - установить DataContext вашего окна так, чтобы он указывал на себя. Таким образом, все элементы, содержащиеся в его содержимом, будут иметь DataContext окна.
<Window ....
DataContext="{Binding RelativeSource={RelativeSource Self}}">
Теперь в любое время вам нужно привязать к свойствам, определенным в окне (например, к свойству зависимости Проблемы), тогда вы можете просто сделать это:
<TextBlock Text="{Binding Problem}" />