我有一个使用 NUI 的简单 Tizen .NET 应用程序。我想创建一个按钮,单击该按钮时,会将其内部文本字段更改为从 5 下降到 0 的计数器。
Button button = new Button {
BackgroundColor = Color.Red,
Text = "Click me",
HeightSpecification = 250,
WidthSpecification = 500,
};
button.Clicked += (obj, args) => {
// wait one second, then change text:
// for (int i = 0; i < 6; i++) {
// delay(1000);
// button.Text($"{i}");
// }
};
我需要按钮文本每次更改时更新。但是,它不适用于我的实现,并且更改仅在整个过程完成后才会发生(因此按钮的文本从“Click me”变为“5”。它永远不会变为“Click me”,然后是“1”,然后是“2”等)。
我的猜测是,button.Text 属性实际上确实发生了变化,但 UI 不一定会被调用来更新……至少除非整个委托函数已完成。
我想知道是否有一个特殊的 Tizen NUI 生命周期阶段,每次值更改时都会被调用(我在官方文档中找不到任何阶段),或者我是否需要集成外部库以便能够复制反应式应用程序?
Timer
。https://docs.tizen.org/application/dotnet/api/TizenFX/API11/api/Tizen.NUI.Timer.html
var button = new Button()
{
Text = "Hello"
};
var counter = 0;
var timer = new Timer(1000);
timer.Tick += (s, e) => {
button.Text = counter.ToString();
counter++;
return counter < 6;
};
button.Clicked += (s, e) => {
timer.Start();
};