Skip to content
On this page

Data Binding 数据绑定

数据绑定是Fyne工具包的一个强大的新添加,Fyne工具箱在v2.0.0版本中引入。通过使用数据绑定,我们可以避免手动管理许多标准对象,如标签、按钮和列表。

内置绑定支持许多基本类型(如Int、String、Float等)、列表(如StringList、BoolList)以及Map和Struct绑定。这些类型中的每一种都可以使用简单的构造函数创建。例如,要创建具有零值的新字符串绑定,可以使用binding.NewString()。可以使用get和set方法获取或设置大多数数据绑定的值。

也可以使用类似的函数绑定到现有值,这些函数的名称以bind开头,并且它们都接受指向绑定类型的指针。要绑定到现有的int,我们可以使用binding.BindInt(&myInt)。通过保持对绑定值的引用而不是原始变量,我们可以配置小部件和函数以自动响应任何更改。如果直接更改外部数据,请确保调用Reload()以确保绑定系统读取新值。

go
package main

import (
	"log"

	"fyne.io/fyne/v2/data/binding"
)

func main() {
	boundString := binding.NewString()
	s, _ := boundString.Get()
	log.Printf("Bound = '%s'", s)

	myInt := 5
	boundInt := binding.BindInt(&myInt)
	i, _ := boundInt.Get()
	log.Printf("Source = %d, bound = %d", myInt, i)
}

接下来,我们开始学习简单值小部件绑定。