引发OnPropertyChanged后UI不更新

时间:2018-10-22 10:04:39

标签: .net wpf timer ui-thread worker-thread

我需要每5秒运行一次以更新用户界面

    public ViewModelCtor()
    {
       var timer = new System.Timers.Timer(5000)
        {
            Enabled = true
        };

        timer.Elapsed += (sender, args) =>
        {
            TimeSinceLastLogin = CalculateTimeSinceLastLogin();
        };


    public string TimeSinceLastLogin
    {
        get { return _timeSinceLastLogin; }
        set
        {
            if (value == _timeSinceLastLogin) return;
            _timeSinceLastLogin = value;
            OnPropertyChanged(new PropertyChangedEventArgs(nameof(TimeSinceLastLogin)));
        }
    }

CalculateTimeSinceLastLogin只是将TimeSinceLastLogin属性设置为一个值。没什么特别的。

计时器在工作线程上执行,因此UI不会根据我的判断进行更新。我应该怎么做才能更新UI?我的解决方案必须不可知,因为它可能针对wpf或xamarin。

0 个答案:

没有答案