WF中依赖属性特点:
依赖属性是属性值存储在一个中央存储库中。而不是实现为类中的普通实例变量。
依赖属性的主要优势在于允许在运行时绑定属性值到实例数据。绑定所产生的属性实际值则是在运行时确定的。
要想绑到两个活动的属生时,就需要使用依赖项属性。
WF中依赖属性定义的方法:
定义某属性的依赖属性,需要用此“属性名”+“Property”的方式定义依赖属性,否则会出错。如下边代码给出了正确与错误的定义方法,可以对比一下。
正确定义方法:
// 正确 public static DependencyProperty AccountIdProperty = System.Workflow.ComponentModel.DependencyProperty.Register( " AccountId " , typeof (Int32), typeof (ValidateAccountActivity)); /// <summary> /// 定单账户 /// </summary> [Description( " Identifies the account " )] // 可视化设计器在引用组件成员时可以显示指定的说明 [Category( " CodeActive Example " )] // 用于给属性或事件分组的类别的名称。 [Browsable( true )] // 指定一个属性 (Property) 或事件是否应显示在“属性”窗口中。 [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] // 指定在设计时序列化组件上的属性 (Property) 时所使用的持久性类型。 public Int32 AccountId { get { return ((Int32)( base .GetValue(Workflow1.AccountIdProperty))); } set { base .SetValue(Workflow1.AccountIdProperty, value); } }
错误定义方法:
// 错误 public static DependencyProperty AccountNamePperty = System.Workflow.ComponentModel.DependencyProperty.Register( " AccountName " , typeof (Int32), typeof (ValidateAccountActivity)); [Description( " Identifies the accout " )] [Category( " Custom Activity Example " )] [Browsable( true )] [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] public Int32 AccountName { get { return ((Int32)( base .GetValue(ValidateAccountActivity.AccountNamePperty))); } set { base .SetValue(ValidateAccountActivity.AccountNamePperty, value); } }