Привязка к DateTime. Теперь. Обновите значение

Ну, я должен был связать DateTime. Теперь к TextBlock, я использовал это:

 Text="{Binding Source={x:Static System:DateTime.Now},StringFormat='HH:mm:ss tt'}"

Теперь, как вынудить это обновить? Это get's время, когда управление загружается и не обновило бы его...

12
задан ChrisF 28 July 2010 в 15:59
поделиться

2 ответа

Отредактировано (я не учел его желание автоматически обновлять):

Вот ссылка на класс 'Ticker', который использует INotifyPropertyChanged, поэтому ' Лл автообновление. Вот код с сайта:

namespace TheJoyOfCode.WpfExample
{
    public class Ticker : INotifyPropertyChanged
    {
        public Ticker()
        {
            Timer timer = new Timer();
            timer.Interval = 1000; // 1 second updates
            timer.Elapsed += timer_Elapsed;
            timer.Start();
        }

        public DateTime Now
        {
            get { return DateTime.Now; }
        }

        void timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs("Now"));
        }

        public event PropertyChangedEventHandler PropertyChanged;
    }
}


<Page.Resources>
   <src:Ticker x:Key="ticker" />
</Page.Resources>

<TextBox Text="{Binding Source={StaticResource ticker}, Path=Now, Mode=OneWay}"/>

Объявить:

xmlns:sys="clr-namespace:System;assembly=mscorlib"

Теперь это будет работать:

<TextBox Text="{Binding Source={StaticResource ticker}, Path=Now, Mode=OneWay}"/>
23
ответ дан 2 December 2019 в 05:53
поделиться

Вам нужно создать таймер, который обновляет текстовое поле каждую секунду.

1
ответ дан 2 December 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: