zoukankan      html  css  js  c++  java
  • WPF 附件路由事件

    public class Person

        {

            public static readonly RoutedEvent NameChangedEvent = EventManager.RegisterRoutedEvent("NameChanged", RoutingStrategy.Bubble,typeof(RoutedEventHandler),typeof(Person));

            //为界面添加路由侦听

            public static void AddNameChangedHandle(DependencyObject d,RoutedEventHandler h)

            {

                UIElement e = d as UIElement;

                if(null!=e)

                {

                    e.AddHandler(NameChangedEvent, h);

                }

            }

            //移除侦听

            public static void RemoveNameChangedHandle(DependencyObject d,RoutedEventHandler h)

            {

                UIElement e = d as UIElement;

                if(null!=e)

                {

                    e.RemoveHandler(NameChangedEvent,h);

                }

            }

            public int Id { get; set; }

            public string Name { get; set; }

        }

    <Window x:Class="WpfApplication1.Window27"

            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

            Title="Window27" Height="272" Width="349">

        <Grid x:Name="gd_main">

            <Button Content="Button"  x:Name="button1" Width="75" Height="75" Margin="10" Click="button1_Click" />

        </Grid>

    </Window>

     public partial class Window27 : Window

        {

            public Window27()

            {

                InitializeComponent();

                //为外层Grid添加路由事件

                Person.AddNameChangedHandle(this.gd_main, new RoutedEventHandler(PersonNameChanged));

            }

            private void PersonNameChanged(object obj, RoutedEventArgs e)

            {

                MessageBox.Show((e.OriginalSource as Person).Name);

            }

            private void button1_Click(object sender, RoutedEventArgs e)

            {

                Person persion = new Person();

                persion.Id = 0;

                persion.Name = "Darren";

                //准备事件消息并发送路由事件

                RoutedEventArgs arg = new RoutedEventArgs(Person.NameChangedEvent, persion);

                this.button1.RaiseEvent(arg);

            }

        }

  • 相关阅读:
    Tsar 服务器系统和应用信息的采集报告工具
    mysqltuner
    MySQL性能监控工具-MONyog
    tuning-primer.sh mysql 报表
    mytop
    InnoTop
    mysql监控管理工具--innotop
    iotop,pt-ioprofile : mysql IO负载高的来源定位
    PERCONA-TOOLKIT 工具的安装与使用2
    PERCONA-TOOLKIT : pt-ioprofile分析IO情况
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14856153.html
Copyright © 2011-2022 走看看