i " suspect " проблема заключается в конструкторах по умолчанию для свойства Text текстового поля.
Теперь свойство Text является свойством зависимости, когда вы вызываете
<TextBlock Text="{Binding Text}" ></TextBlock>
вы фактически вызываете конструктор для свойства Text, которое принимает одно строковое значение, в свою очередь SL / WPF использует отражение, чтобы выяснить, какой это конструктор, вы можете избежать этого, используя его в стиле именованных параметров.
<TextBlock Text="{Binding Path=Text}" ></TextBlock>
Я думаю, что не указывать режим, в котором по умолчанию используется одноразовая привязка, поэтому OnPropertyChanged не влияет на значение, поскольку привязка происходит только один раз. который выглядит как ниже. Теперь для привязки текстового поля по умолчанию используется значение «OneWay», возможно, поскольку оно вложено в сетку данных, его поведение по умолчанию отличается. Возможно, он выполняет функцию наследования свойств и использует режим привязки элемента управления пользовательского интерфейса под ним.
<TextBlock Text="{Binding Text, Mode=OneTime}" ></TextBlock>
следовательно, почему, когда вы указываете режим привязки, вот так
<TextBlock Text="{Binding Text, Mode=OneWay}" ></TextBlock>
работает счастливо и легко