项目需要一个硬件检测功能,需要用到界面刷新,刚开始想用个定时器,对检测过的硬设定时添加后刷新界面。

但是很遗憾,定时器并不能进行刷新。后台检测List数据里面已经添加了很多了很多数据了,就是不能显示到界面

然后百度一下“WPF刷新界面”找了好几篇文章,大致都是如下代码:

 public class UIHelper : Application{//刷新界面private static DispatcherOperationCallbackexitFrameCallback = new DispatcherOperationCallback(ExitFrame);public static void DoEvents(){DispatcherFrame nestedFrame = new DispatcherFrame();DispatcherOperation exitOperation =Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background,exitFrameCallback, nestedFrame);Dispatcher.PushFrame(nestedFrame);if (exitOperation.Status != DispatcherOperationStatus.Completed){exitOperation.Abort();}}private static object ExitFrame(object state){DispatcherFrame frame = state as DispatcherFrame;frame.Continue = false;return null;}}

我把代码手敲下来,(注意不是复制,应为我不是太懂,这里也劝大家不要轻易复制,因为复制就算解决问题

了下次你还是不知道怎么回事)。在我添加数据后面调用UIHelper .DoEvents(),但是还是没有反应。依然不

刷新,我就郁闷了,别人可以解决为啥到我这就不能用了呢,请教各位大神,这个怎么用啊?有什么前提条件

吗?请我告诉我……

然后继续找啊找啊,在CSDN上找到了类似的问题。原来list<T>没有数据更新的功能,这里面需要用

ObservableCollection<T> 类 或 BindingList<T> 类 代替 List 类,看ObservableCollection<T>在帮助文档里的说明,

这个提供自动更新数据的接口,可以自动向控件发送更新消息,果断一实验。OK成功显示。

 public partial class Window2 : Window{DispatcherTimer _mainTimer;public Window2(){InitializeComponent();_mainTimer = new DispatcherTimer();_mainTimer.Interval = TimeSpan.FromSeconds(1);_mainTimer.Tick += new EventHandler(_mainTimer_Tick);_mainTimer.IsEnabled = true;}void _mainTimer_Tick(object sender, EventArgs e){if (progressBar1.Value == progressBar1.Maximum)progressBar1.Value = 0;progressBar1.Value++;DeviceCheckInfo device = new DeviceCheckInfo();device.CheckResult = true;device.Name = "发卡器" + progressBar1.Value;device.CheckContent = "打卡短短";Dispatcher.BeginInvoke(new Action(() => {if (list != null)list.Add(device);lbtest.ItemsSource = list;// UIHelper.DoEvents();       }));}ObservableCollection<DeviceCheckInfo> list;private void Window_Loaded(object sender, RoutedEventArgs e){list = new ObservableCollection<DeviceCheckInfo>(){new DeviceCheckInfo {Name="三合一读卡器",CheckContent="duankou",CheckResult=true },new DeviceCheckInfo {Name="发卡器",CheckContent="tongdao",CheckResult=false },new DeviceCheckInfo {Name="打印机",CheckContent="youzhi" ,CheckResult=true}};lbtest.ItemsSource = list;}private void button1_Click(object sender, RoutedEventArgs e){DeviceCheckInfo device = new DeviceCheckInfo();device.CheckResult = true;device.Name = "发卡器" + progressBar1.Value;device.CheckContent = "打卡短短";list.Add(device);lbtest.ItemsSource = list;}}效果如下:

转载于:https://www.cnblogs.com/smiler/p/3216315.html

WPF刷新界面之坎坷路相关推荐

  1. JS解决在提交form表单时某个值不存在 alter弹窗点确定不刷新界面

    <form action="" method="post" onsubmit="return checkname()"> < ...

  2. android中view刷新界面,Android view invalidate()使用

    Android提供了Invalidate方法實現界面刷新,但是Invalidate不能直接在線程中調用,因為他是違背了單線程模型:androidUI操作並不是線程安全的,並且這些操作必須在UI線程中調 ...

  3. 如何让fragment刷新界面_快速实现android版抖音主界面的心得

    原文作者:DK_BurNIng 如何快速确定竞品某个界面的实现方式? 当你收到产品一个需求是模仿某个竞品且时间很短没有过多时间给你调研技术方案的时候,如何尽快确定这个功能的技术方案呢? 这里我给出我自 ...

  4. 【源码分享】WPF漂亮界面框架实现原理分析及源码分享

    1 源码下载 直接放出源码地址,为了编译源码,需要下载安装OSGi.NET插件框架安装包:http://www.iopenworks.com/. [1]框架安装包:MuiTreeNavVsPackag ...

  5. delphi刷新界面所选行丢失问题

    2019独角兽企业重金招聘Python工程师标准>>> procedure TFram.ado_khAfterPost(DataSet: TDataSet); var IDs: st ...

  6. EXC_BAD_ACCESS(code=2,address=0xcc 异常解决 及 建议不要在子线程中刷新界面

    EXC_BAD_ACCESS(code=2,address=0xcc 异常解决 及 建议不要在子线程中刷新界面 参考文章: (1)EXC_BAD_ACCESS(code=2,address=0xcc ...

  7. echart 广州3d_一个3D可视化项目背后的心酸:ECharts-X的坎坷路

    一个3D可视化项目背后的心酸:ECharts-X的坎坷路 (2015-02-05 17:26:32) 标签: 大数据 可视化项目 Raincent网络大数据(http://www.raincent.c ...

  8. WPF登录界面demo

    概述: 此WPF登录界面demo用了自定义按钮样式和添加了窗体阴影,并加入了旋转.缩放等动画实现的,运行效果如下: App.xaml页面代码: <Application x:Class=&quo ...

  9. [新人必读][游戏杂谈]独立游戏制作者的坎坷路观后感

    创意到底值钱不值钱?这是个问题. 多做几个游戏DEMO的,到底有啥用. 显而易见的,当然可以提高制作游戏的熟练度,提高对一些游戏的理解. 但是 如果只是把 制作多款游戏,当作 碰运气,运气好,自己制作 ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第13期)
  2. 初等数论--整除--公因数一定是最大公因数的因数
  3. hibernate的Configuration类和SessionFactory接口
  4. Linux伪终端怎么退出,什么是linux里的终端和伪终端
  5. 后疫情时代,这家在线教育机构如何乘“云”而上
  6. 数据结构员工通讯录管理系统 C语言,数据结构课程设计报告单位员工通讯录管理系统.doc...
  7. 笨兔兔的故事——带你了解Ubuntu,了解Linux 杀毒 第十八章
  8. Office XP 试用感受
  9. Linux-ubuntu系统查看显卡型号、显卡信息详解、显卡天梯图
  10. 开放、数字化、创新、合作……华为云发力ing!
  11. linux---finger命令
  12. 芜湖人社×美创科技,人社局数据安全管理制度与数据分类分级建设
  13. Android Native层
  14. Wolfram Mathematica学习笔记1
  15. 抖音如何热门,发布不会提示重复
  16. python之meshgrid的使用
  17. iOS 开发 - 播放器Demo开发记录
  18. Proxyee Down简介
  19. channel-wise卷积--学习笔记
  20. 安卓刷量技术揭秘(二) 高级攻防技巧

热门文章

  1. Markdown转PDF→利用 Markdown 制作电子书|非常简单
  2. 计算机网络相关的韩语词汇,韩语电脑类词汇
  3. 如何导入outlook联系人到BlackBerry 10
  4. Oracle--同义词
  5. 计算机图形学【GAMES-101】8、辐射度量学与光线追踪
  6. 访完美世界副总裁佟庆:游戏开发如何运用人工智能技术?
  7. 2020年煤矿采煤机(掘进机)操作找答案及煤矿采煤机(掘进机)操作模拟考试题
  8. 天天生鲜Django项目④
  9. 屏幕太大?来试试分屏吧
  10. LOJ2402 [THUPC2017] 天天爱射击 / Shooting 二分查找+主席树