数据绑定

数据绑定 #

数据绑定是 Fyne 工具包的一个强大新功能,它在版本 v2.0.0 中引入。通过使用数据绑定,我们可以避免手动管理许多标准对象,如 LabelButtonList

内置绑定支持许多原始类型(如 IntStringFloat 等)、列表(例如 StringListBoolList)以及 MapStruct 绑定。每种类型都可以使用简单的构造函数创建。例如,要使用零值创建一个新的字符串绑定,可以使用 binding.NewString()。你可以使用 GetSet 方法获取或设置大多数数据绑定的值。

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

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)
}

接下来我们开始学习关于 简单绑定控件绑定。