类
自:2.26
描述 [源代码]
final class GObject.Binding : GObject.Object
{
/* No available fields */
}
GObject
实例(或源)和其他 GObject
实例(或目标)上的另一个属性。
每当源属性发生变化时,相同的值应用于目标属性;例如,以下绑定
g_object_bind_property (object1, "property-a",
object2, "property-b",
G_BINDING_DEFAULT);
可以在两个 GObject
实例的两个属性之间创建双向绑定,以便如果任一属性更改,另一个也将更新,例如
g_object_bind_property (object1, "property-a",
object2, "property-b",
G_BINDING_BIDIRECTIONAL);
还可以设置自定义转换函数(在双向绑定时,在双向绑定时,在双向绑定时)将自定义转换应用于来自于源值到目标值,应用它之前;例如,以下绑定
g_object_bind_property_full (adjustment1, "value",
adjustment2, "value",
G_BINDING_BIDIRECTIONAL,
celsius_to_fahrenheit,
fahrenheit_to_celsius,
NULL, NULL);
请注意,GBinding
不会自动解决循环;如下的循环
object1:propertyA -> object2:propertyB
object2:propertyB -> object3:propertyC
object3:propertyC -> object1:propertyA
具有垃圾回收的语言的绑定可以使用 g_binding_unbind()
显式释放源属性和目标属性之间的绑定,而不是依赖于绑定、源实例和目标实例的最后一个引用来丢弃。
自:2.26