У меня сложный внутренний процесс, который работает в течение длительного периода времени. Все жизненные статистики отображаются в виде свойств с событиями INotifyPropertyChanged
, поднятыми, когда они установлены.Регулярное обновление привязки Wpf
Я хотел добавить «Истекшее время», которое оказалось гораздо более сложным, чем ожидалось.
Я выставил ProcessStartedAt
DateTime и бросил вместе конвертер для вычитания связанного времени с DateTime.Now
. Это работает отлично (один раз). После этого, поскольку свойство не изменяется, привязка никогда не обновляется, и конвертер не вызывается снова.
Я не хочу, чтобы у back-end был таймер, посвященный обновлению свойства «Истекшее время». Это нарушает принцип разделения интересов. Я был бы счастливее с таймером в пользовательском интерфейсе, но не уверен, как принудительно привязать к обновлению без обновления значения свойства.
Еще лучше, есть ли способ, с помощью которого я могу установить привязку для обновления через равные промежутки времени?
<TextBlock Text="{Binding Path=ProcessStartedAt,
Converter={StaticResource ElapsedTime}}"/>
Как насчет уведомления о том, что свойство меняется каждый второй? –
Ну, технически, это не так. Результат преобразования меняется каждую секунду ... – Basic
Результат технически изменяется каждые миллисекунды, но вы можете уведомить в любой промежуток времени, который вы хотите ... или, может быть, я не понимаю, что это за свойство. Что представляет собой Истекшее время? –