- Вы должны установить контекст данных (хорошо) = -> (вы сделали это, если вы используете MVVM, есть более элегантные способы, но это хорошо)
- вы установили привязку в xaml, но вы привязываетесь к имени класса UIDate.DateStr
, если вы установили контекст данных для элемента.все дочерние узлы будут иметь одинаковый контекст данных -> до тех пор, пока вы его не изменили.(вы устанавливаете это в window / this, поэтому метка как дочерняя также имеет тот же контекст данных)
имейте в виду, ваш DataContext уже установлен, вы можете напрямую получить доступ к свойствам в нем.
изменить:
{Binding Path=UIDate.DateStr, UpdateSourceTrigger=PropertyChanged}
на:
{Binding Path=DateStr}
здесь не требуется источник обновлений.Bec.Триггеры здесь, чтобы сообщить ограниченному объекту, что что-то изменилось.(только в этом направлении).
В вашем случае ваш ярлык не является элементом управления вводом и должен только показывать значение.означает, что элемент управления не должен информировать связанный объект о том, что что-то изменилось.
Следующий пункт: если вы не собираетесь изменять значение в вашем объекте.Вы можете сохранить свой код как есть.Bec.если вы устанавливаете объект (в вашем случае вы задаете контекст данных), все привязки, которые ссылаются на этот объект, обновляются.Итак, начальное значение установлено.
Но если вы изменяете значение, когда объект уже связан, вам необходимо уведомить Control.Вам следует поискать интерфейс INotifyPropertyChanged ...
приветствует надежду, теперь все ясно