• DependencyProperty事件


    1.     DependencyProperty事件本质上与DependencyProperty从属属性一样,细节操作见DependencyProperty从属属性
    2.     DependencyProperty事件只能绑定到事件,而不能绑定到委托

       DependencyProperty事件只能赋值到委托

    3.     即使用+=方式为事件添加订阅,原有的绑定也会被移除

    说明:

    [事件A] 绑定到 [事件B]

    [事件A] + = [委托1];

    [事件B] + = [委托2];

    触发[[事件A],将执行 [委托1],不会执行[委托2],绑定已被清除

    4.     多个绑定都会被执行

    A节点.A事件 += [委托1]

    B节点.B事件 绑定到 [A.A事件]

    C节点.C事件 绑定到 [A.A事件]

    执行A、B、C节点,[委托1]会被执行3次

    1.1      AddHandler、RemoveHandler 通过从属属性添加、移除事件定阅
    System.Workflow.ComponentModel.DependencyObject的实例方法

    public void AddHandler(DependencyProperty dependencyEvent, object value);

    实例.AddHandler(类.DependencyProperty事件,委托)

    public void RemoveHandler(DependencyProperty dependencyEvent, object value);

    实例.RemoveHandler(类.DependencyProperty事件,委托)

    this.AddHandler(EAEvent, new System.EventHandler(OnEA));

    1.2      定义一个有DependencyProperty事件的Activity
         public class Activity1:Activity

         {

            //为事件绑定操作

            protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)

            {

                //第一种绑定方式

                this.AddHandler(Activity1.EAEvent, new System.EventHandler(OnEA));

                //第二种绑定方式

                //this.EA += new System.EventHandler(OnEA);

               

                return base.Execute(executionContext);

            }

            //事件要执行的操作

            void OnEA(object sender, EventArgs e)

            {

                System.Console.WriteLine("EA");

            }

            //定义DependencyProperty事件

            public static DependencyProperty EAEvent = DependencyProperty.Register("EA", typeof(EventHandler), typeof(Activity1));

            //定义事件

            public event EventHandler EA

            {

                add

                {

                   base.AddHandler(Activity1.EAEvent, value);

                }

                remove

                {

                    base.RemoveHandler(Activity1.EAEvent, value);

                }

            }

         }

    事件的绑定也可在类外部进行

    private Activity1 activity11;

    this.activity11 = new Activity1();

    this.activity11.EA += new EventHandler(activity11_EA);

    this.activity11.AddHandler(Activity1.EAEvent, new System.EventHandler(activity11_EA));

    1.3      SetBinding代码方式的绑定
    详细见DependencyProperty从属属性

    System.Workflow.ComponentModel.ActivityBind activitybind1 = new System.Workflow.ComponentModel.ActivityBind();

    activitybind1.Name = "codeActivity3";

    activitybind1.Path = "ExecuteCode";

    this.activity11.SetBinding(WorkflowConsoleApplication2.Activity1.EAEvent, activitybind1);

    1.4      VS设计器进行绑定

    1.5      XOML配置文件的从属属性绑定
    详细见DependencyProperty从属属性

         

         

  • 相关阅读:
    Best Websites to Download Cracked Software for Free
    如何定义版本号?
    JVM:类加载的双亲委派机制
    VR全景图片如何拍摄制作,拍摄制作过程中要注意什么?
    聚类算法概念复习
    Chapter8 支持向量机
    Maven基础知识【基本概念、项目结构、依赖管理、生命周期与插件】
    基于MapReduce对hadoop进行调优
    适合骑车时候戴的耳机怎么选,列举五款在骑行佩戴的耳机推荐
    HTML5期末考核大作业:基于Html+Css+javascript的网页制作(化妆品公司网站制作)
  • 原文地址:https://blog.csdn.net/s13166803785/article/details/128180788