Вы используете MainWindow как DataContext содержимого MainWindow.Когда вы устанавливаете Content="{Binding}"
в ContentControl, это устанавливает содержимое ContentControl на экземпляр MainWindow.Это проблема, потому что ContentControl содержится в содержимом MainWindow.Всякий раз, когда свойство Content получает UIElement, оно отображает его как UIElement, а не через DataTemplate, как это было бы с классом не-UI.Таким образом, ваше дерево в итоге получается
MainWindow
ContentControl
MainWindow
ContentControl
...
Использование отдельного объекта данных для вашего DataContext вместо самого окна даст вам поведение, которое вы ищете:
public partial class Window13 : Window
{
public Window13()
{
InitializeComponent();
MyData data = new MyData();
data.MyString = "Test";
this.DataContext = data;
}
}
public class MyData
{
public string MyString { get; set; }
}