会员
周边
新闻
博问
融资
云市场
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
记性特差
博客园
首页
新随笔
联系
管理
C#通过事件跨类调用WPF主窗口中的控件
xaml.cs文件:
using System; using System.Timers; using System.Windows; using System.Windows.Forms; namespace ControlUsed { public partial class MainWindow { public MainWindow() { Monitor.PartEvent += OnStep;//将该类中的函数注册到Monitor静态类的PartEvent事件中。 } public void OnStep(Object sender,MessageArgs message) { Application.Current.Dispatcher.Invoke(new Action(() => { MyTextBlock.Text = message.Txtmessage;//设置对应xaml中控件的属性 })); } } }
MessageArgs类:
public class MessageArgs:EventArgs { public MessageArgs(string message) { this.TxtMessage = message; } public string TxtMessage { get; set; } }
Monitor静态类:
public static class Monitor { public static event EventHandler<MessageArgs> PartEvent;//定义在Monitor中的一个事件,参数是MessageArgs对象 public static void InFunction(string message) { var messageArg = new MessageArgs { TxtMessage=message }; if (PartEvent != null)//如果mainwindow构造函数中给PartEvent注册了函数就不为null { PartEvent(new object(), messageArg);//触发事件,执行所有注册过的函数 } } public static bool MonitorCenter() { InFunction("change");//在外部类中修改TextBlock的Text } }
posted on
2014-10-30 17:59
记性特差
阅读(
1253
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部