这是关于 .Net6 和 MAUI 的
我确实有一个 List<> items。在不定式循环中,每隔 x 秒我会发送一个带有 *item *as key 的请求。 收到消息后,我想刷新页面的内容。 该页面是正常的ContentPage。
我仍在学习,所以我不想知道更好的解决方案可能是什么(除非我认为不可能)。
除了我的
MainPage.xaml.cs
中的这些方法之外,我目前没有太多东西
public partial class MainPage : ContentPage
{
int count = 0;
string previousitem = "";
Caps cap = new Caps(@"c:\tmp\xmldata.xml");
public MainPage()
{
InitializeComponent();
// Methods also in Class MainPage
GetNextItem(cap.ReturnListOfItems());
FillMaui();
}
嗯,我用任务、自动重置事件、时间跨度和计时器尝试了很多东西,以至于我不再有任何运行代码。好吧,除了上面的代码...
我现在真的很困惑,希望得到一些提示。
GetNextItem() 循环遍历所有项目,到达列表末尾时从头开始,甚至处理更改的项目列表。
FillMaui() 只是更改 MainPage.xaml 中元素的属性,例如:
this.ItemName.Text = this.previousitem;
那么,如何在不阻塞我的应用程序的情况下启动这个不定式循环?
您可以使用计时器并在您定义的时间段内触发刷新代码一次,而不是让它连续运行,这会阻止您的应用程序。
第一种方法,您可以使用
RefreshView
提供刷新命令。 RefreshView 是一个容器控件,为可滚动内容提供拉动刷新功能。但 RefreshView 的子级必须是可滚动控件,例如 ScrollView、CollectionView 或 ListView。
第二种方法,可以使用MVVM的方式让List自动改变item。我更喜欢您使用
ObservableCollection<T>
而不是使用列表 您可以检查 从数据绑定到 MVVM。
我不允许发表评论,所以我只是将其作为答案发布 - @timanderson 您是否在作为单例添加的视图中引用 System.Threading.Timer?