#5232·fyne

只在成功验证后设置绑定值

作者: t-hofmann创建于 2024年10月30日更新于 2026年9月3日
标签data binding
  • 核对表
  • 我搜索了问题追踪器,以了解与同一问题有关的未决问题,然后打开一个新的问题。
  • 这个问题只涉及单个bug. 我将对任何其他问题提出新问题。

描述错误

将一个错误的值打入一个输入字段, 它绑定在一个变量上, 将会更新该变量, 尽管该条目的验证器返回一个错误 。

如何繁殖

示例提供两个入场,每个入场使用相同的验证符. 如果输入大于 0 , 校验器返回出错 。 入场使用相同的绑定.

在任何字段输入时,只有在验证成功的情况下,才应使用装订的“特定”方法。

目前,验证器似乎只用于向用户提供反馈,而它已经可以防止错误值的传播。

QQ 屏幕截图

无回复( N)

示例代码

开始 主软件包

导入( E) "fmt" (英语). "钢筋"

"fyne.io/fyne/v2" (英语). "fyne.io/fyne/v2/app" (中文(简体) ). "fyne.io/fyne/v2/容器" (中文(简体) ). "fyne.io/fyne/v2/data/bonding" (中文(简体) ). "fyne.io/fyne/v2/widget" (英语). (中文(简体) ).

func 主 () {

app:= app. new () (中文(简体) ). w: = app.NewWindow ("在调用装订的 Set () 之前的版本") w.resize(货币:NewSize(800,100))

缩写 MAX 英寸 = 0

字符串变量 := func(s) 字符串出错{ v, 错误: = stconv. Atoi (s) 如果错误 ! = 无 { 返回错误 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

如果 v > MAX { 返回 fmt。 错误f (“ 最大 :%d 得到 :%d ” , MAX, v) {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

返回为零 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

Str:=绑定. IntToString( 绑定. NewInt ())

in1:= 部件。 NewEntry With Data( str) in1. 变量 = 字符串变量

in2 := 部件。NewEntry With Data(str) in2. 参数=字符串变量

w.Set Content( 容器. NewVBox () ) (中文(简体) ). 单位1, 单位2, 页:1

w. ShowAndRun () (英语). {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


QQ Fyne 版本

2.5.2 国家

QQ 去编译器版本

1.23.2 (中文(简体) ).

操作系统和版本

Linuxmint 22 (英语).

补充信息

何以相关 :
# 1849 (英语).
#1704 (英语)