<< 点击显示目录 >> 主页 mappView帮助助手 > mapp View帮助信息 > 工程 > 定制的小工具 > 复合型小部件 > 编辑复合小部件(XML) > 本地属性 - "私人 "和 "公共"Local properties - "Private" and "Public" |
在mapp View 5.6及以后的版本中,可以在复合部件中创建 "本地属性",在运行时在复合部件的范围内可见。
本地属性可以分配给复合部件的接口(公共)或只能在内部作为 临时变量使用 (私有)。
此本地属性的ValueChanged事件可以在复合部件的事件绑定中被响应;该值可以通过相应的操作被读取或修改.
本地属性的配置发生在元素<Property>中。
Attribute |
描述 |
Data type |
Required |
xsi:type |
LocalProperty 定义了它是基本数据类型的本地属性。 |
String |
Yes |
name |
本地属性的名称,它显示在内容编辑器的属性窗口中,并选择了复合小组件(public=true)。 这个名字也在事件绑定中使用。
复合部件本身提供的以下属性名称不允许使用。 |
String |
Yes |
type |
属性的数据类型。 |
Number String Boolean |
Yes |
required |
定义了该属性在使用时是否必须进行配置。 |
Boolean |
No |
category |
定义显示该属性的类别。 |
String |
No |
defaultValue |
定义属性的默认值。 |
String |
Yes |
public |
定义本地属性是否只能在复合小组件内使用(默认=false)或在复合小组件的界面中可用(true)。 |
Boolean |
No |
<Property xsi:type="LocalProperty" name="myIndex" type="Number" defaultValue="-1" category="Data" required="false" public="true">
...
</Property>
本地属性的事件配置发生在本地属性的<Event>元素中。
这个元素是可选的。如果没有定义,本地属性的名称可以作为事件绑定中的参数名称使用。
Attribute |
描述 |
Data type |
Required |
name |
事件的唯一名称。这个事件可以在复合部件的事件绑定中被响应。
xsi:type="this.Event " 必须在复合部件的事件绑定中使用。 |
String |
Yes |
<Property xsi:type="LocalProperty" name="myIndex" type="Number" defaultValue="-1" category="Data" required="false" public="true">
<Event name="myIndexChanged">
<Description>value changed event.</Description>
</Event>
...
</Property>
在复合部件的事件绑定中响应 ValueChanged 事件的例子
本地属性 myIndex 通过 复合部件的属性中的 参数 public=true 在实例中可见 。如果一个OPC UA变量或一个会话变量被绑定,一个值的变化可以被响应。
<EventBinding id="CompoundMyIndexChanged">
<Source xsi:type="this.Event" event="myIndexChanged" />
<EventHandler condition="value = 0">
<Action>
<Target xsi:type="widget.Action" widgetRefId="Button1">
<Method name="SetStyle" value="default"/>
</Target>
</Action>
</EventHandler>
</EventBinding>
本地属性的动作配置在本地属性的<Action>元素中进行。
这个元素是可选的。如果没有定义,可以用Get{PropertyName}或Set{PropertyName}使用本地属性的名称。
Action SetAction 被配置在一个<Actions>元素中。
Attribute |
描述 |
Data type |
Required |
name |
动作的唯一名称。这个动作可以在复合部件的事件绑定中使用,以设置本地属性的值。 |
String |
Yes |
<Property xsi:type="LocalProperty" name="myIndex" type="Number" defaultValue="-1" category="Data" required="false" public="true">
<Actions>
<SetAction name="SetMyIndex">
<Description>SetMyIndex description.</Description>
</SetAction>
</Actions>
...
</Property>
在事件绑定中设置一个本地属性的例子
每次点击复合小部件中的图像小部件,都会使一个本地属性的值增加1。
<EventBinding id="ImageClicked">
<Source xsi:type="widget.Event" widgetRefId="Image1" event="Click" />
<EventHandler>
<Action>
<ReadTarget xsi:type="this.Action.Read" >
<Method name="GetMyIndex" />
</ReadTarget>
<Result>
<ResultHandler>
<Action>
<Target xsi:type="this.Action">
<Method name="SetMyIndex" value="=result+1" />
</Target>
</Action>
</ResultHandler>
</Result>
</Action>
</EventHandler>
</EventBinding>
行动 GetAction 被配置在一个<Actions>元素中。
Attribute |
描述 |
Data type |
Required |
name |
动作的唯一名称。这个动作可以在复合部件内的事件绑定中使用,以读取一个本地属性的值。 |
String |
Yes |
<Property xsi:type="LocalProperty" name="myIndex" type="Number" defaultValue="-1" category="Data" required="false" public="true">
<Actions>
<GetAction name="GetMyIndex">
<Description>GetMyIndex description.</Description>
</GetAction>
</Actions>
...
</Property>
在事件绑定中读取一个本地属性的例子
如果复合部件中的一个部件被启用绑定禁用,应该读取一个本地属性的值。根据结果,可以执行另一个动作。
<EventBinding id="ButtonDisabled">
<Source xsi:type="widget.Event" widgetRefId="Button1" event="EnableChanged" />
<EventHandler condition="value">
<Action>
<ReadTarget xsi:type="this.Action.Read" >
<Method name="GetMyIndex" />
</ReadTarget>
<Result>
<ResultHandler condition="0">
<Action>
...
</Action>
</ResultHandler>
</Result>
</Action>
</EventHandler>
</EventBinding>