zoukankan      html  css  js  c++  java
  • C#通过事件跨类调用WPF主窗口中的控件

    xaml.cs文件:

     1 using System;
     2 using System.Timers;
     3 using System.Windows;
     4 using System.Windows.Forms;
     5 namespace ControlUsed
     6 {
     7     //要修改控件的属性 只能在定义控件的xaml或者xaml对应的cs文件修改。  首先订阅Monitor的PartEvent事件,当触发PartEvent事件时(可能并不在类MainWindow对象中),被注册的函数就行做出相应的响应。
     8     public partial class MainWindow
     9     {
    10        
    11         public MainWindow()
    12         {
    13               Monitor.PartEvent += OnStep;//将该类中的函数注册到Monitor静态类的PartEvent事件中。
    14         }
    15         public  void OnStep(Object sender,MessageArgs message)
    16         {
    17           
    18             Application.Current.Dispatcher.Invoke(new Action(() =>
    19                 {
    20                     MyTextBlock.Text = message.Txtmessage;//设置对应xaml中控件的属性
    21                 }));
    22         }
    23      }
    24 }

    MessageArgs类:

     1 public  class MessageArgs:EventArgs
     2     {
     3        public MessageArgs(string message)
     4        {
     5            this.TxtMessage = message;
     6        }
     7 
     8        public string TxtMessage { get; set; }
     9        
    10     }

    Monitor静态类:

     1  public static class Monitor
     2     {
     3       public static event  EventHandler<MessageArgs> PartEvent;//定义在Monitor中的一个事件,参数是MessageArgs对象
     4 
     5       
     6       public static void InFunction(string message)
     7        {
     8            var messageArg = new MessageArgs
     9                {
    10                    TxtMessage=message
    11                };
    12            if (PartEvent != null)//如果mainwindow构造函数中给PartEvent注册了函数就不为null
    13            {
    14                PartEvent(null, messageArg);//触发事件,执行所有注册过的函数
    15            }
    16        }
    17 
    18     public static bool MonitorCenter(string s)
    19        {
    20          InFunction(s);//在外部类中修改TextBlock的Text
    21        }
    22 }
  • 相关阅读:
    csv,exl自动提取表头两列英文字段按英文名称排序显示
    javascript:的用法
    OLAP ODS 项目总结 BI 中的关键
    一些性能查询的SQL 备忘
    ArcGIS 10 SDE for ORACLE 迁移 (3)
    如何测试一个ETL_BI 系统
    ArcGIS 10 SDE for ORACLE 迁移 (2)
    fsck.ext3: Unable to resolve 'LABEL=/design'
    ArcGIS 10 SDE for ORACLE 迁移 (4)
    BI 中关于度量的SQL计算
  • 原文地址:https://www.cnblogs.com/foreveryt/p/4044418.html
Copyright © 2011-2022 走看看