C# 如何在其他类中通知主窗口刷新界面?

我写了一个程序,用UDP接受一串数据,根据协议解析之后把各个数值放到一个类中,然后需要这个带有数据的类通知winform主界面刷新显示数据。这个需要怎么实现呢?

 ![图片说明](https://img-ask.csdn.net/upload/201912/13/1576209160_95036.png)

主要难点在于不知道怎么通知主窗口现在应该刷新数据了。

可以通过委托和事件来实现

UAVMain这个实例的引用都可以直接拿到了还用的着什么委托?UAVMain.Info = info这句话不是已经赋值了吗?至于你界面没有刷新有两个可能:1.你在给info赋值的时候没有相应的给界面上的控件赋值。2.如果你已经给相应的控件赋值了得情况下还没刷新就是因为你把UAVMain.Info = info这句代码写到了死循环里面,然后循环下面还用了个ThreadSleep(50),如果你的RecvMsg()这个函数是在UI线程里面执行的,你的界面永远处于“假死”状态,因为你的窗体一直都在Sleep,根本没有处理界面消息的机会

可以使用MVVM,在类中通知另外一个窗口的更新数据,只需修改窗口对应的viewmodel即可。Mvvmlight实现了专门的消息通知类。我实际项目中使用的stylet,窗口通信更为简单,不过需要使用WPF。
https://blog.csdn.net/qq_43307934/article/details/91411591

http://www.mamicode.com/info-detail-2326790.html