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)
}
接下来,我们开始学习简单值小部件绑定。