Tizen .NET NUI 应用程序的状态更改和反应式组件?

问题描述 投票:0回答:1

我有一个使用 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 生命周期阶段,每次值更改时都会被调用(我在官方文档中找不到任何阶段),或者我是否需要集成外部库以便能够复制反应式应用程序?

c# .net tizen tizen-emulator nui
1个回答
0
投票
在这种情况下,您可能需要

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(); };
    
© www.soinside.com 2019 - 2024. All rights reserved.