C#通过事件跨类调用WPF主窗口中的控件2022-05-18 08:20:42xaml.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 } } C#通过事件跨类调用WPF主窗口中的控件上一篇:winfrom调用WebService 中的SOAP 注册sessionId下一篇:C# tostring()汇总