萌新求助,wpf数据绑定后,界面不更新,感谢感谢

这也不能运行不是吧 2021-11-09 16:20:23

首先是xml代码

        <TextBlock Text="{Binding SNR}" FontSize="34" TextAlignment="Center"/>
        <TextBlock Grid.Row="1" Text="{Binding FLD}" FontSize="34" TextAlignment="Center"/>

页面的后台也写了this.DataContext = new MonitorViewModel();

    public class MonitorViewModel : NotifyBase, IProtocolData
    {
        private double snr;

        public double SNR
        {
            get { return snr; }
            set { snr = value; this.NotifyChanged(); }
        }

        private double fld;

        public double FLD
        {
            get { return fld; }
            set { fld = value; this.NotifyChanged(); }
        }

        public bool Translate(string[] arrayMsg, string srcText)
        {
            SNR = Convert.ToInt32(arrayMsg[10]);
            FLD = Convert.ToInt32(arrayMsg[11]);
            System.Diagnostics.Debug.WriteLine("解析到场强" + FLD);
            return true;
        }
    }

解析到场强这一句,一直能在后台输出,但是view界面就是不更新,下面是通知类。这是为什么?感谢感谢

    public class NotifyBase : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        public void NotifyChanged([CallerMemberName] string propName = "")
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName));
        }
    }

 

...全文
760 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
蘑菇台灯 2021-11-25
  • 打赏
  • 举报
回复

Text="{Binding SNR,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"

  • 举报
回复
@蘑菇台灯 非常感谢,我试试去
xi冷雨夜 2021-11-10
  • 打赏
  • 举报
回复

是不是不在UI线程更新的?

  • 举报
回复
@xi冷雨夜 不在,在自己新建的viewmodel类中更新的,不知道这样行不行
xi冷雨夜 2021-11-11
  • 举报
回复
@这也不能运行不是吧 在更新SNR、FLD字段时,放在UI线程操作就行了,比如 Application.Current?.Dispatcher.Invoke(()=&gt; { Translate(param1,param2); });
  • 举报
回复
@xi冷雨夜 好的,感谢感谢,我试试去

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧