为了账号安全,请及时绑定邮箱和手机立即绑定

如何在xamarin表单中使用异步更改更改ui

如何在xamarin表单中使用异步更改更改ui

C#
饮歌长啸 2023-08-13 16:12:02
我尝试以 xamarin 形式开发移动应用程序。我有新闻列表,我正在使用 SQLite 来存储它。当我的主页打开时,在我从 SQLite 获取新闻之前,然后我尝试从 Web API 获取新新闻。我可以在 SQLite 中保存新新闻,但我的 UI 没有改变。我该如何解决这个问题?    public MainPage()    {        InitializeComponent();        database = new Helper.xxxDatabase(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "xxx.db3"));        SetLocalDBMainNews();        Task.Run(async () => { await GetNewsAsync(); });    }    void SetLocalDBMainNews()    {        if(database.TableExists("News"))        {            List<News> newsList = database.GetNewsData();            if (newsList.Count > 0)            {                MaiNewsList.ItemsSource = newsList.Where(x => x.Type.Equals((int)NewsType.MainNews)).OrderBy(x => x.Sort).ToList();            }        }        else            database.CreateNewsTable();    }    private async Task GetNewsAsync()    {        try        {            var register = database.GetRegisterData();            string url = "http://xxx.azurewebsites.net/api/News/GetPublishedNews";            var response = Tools.Send(url, "GET", register.Token);            var result = JsonConvert.DeserializeObject<ApiResponse<List<News>>>(response);            if (result.HasError == false)            {                var newsList = result.Value;                database.DeleteAllNews();                foreach(var n in newsList)                {                    database.Insert(n);                }                MaiNewsList.ItemsSource = newsList.Where(x => x.Type.Equals((int)NewsType.MainNews)).OrderBy(x => x.Sort).ToList();            }        }        catch{}    }该代码适用于将新新闻保存到 SQLite,但我无法将新闻异步绑定到 UI。
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

UI 更改需要在 UI 线程上使用BeginInvokeOnMainThread


Device.BeginInvokeOnMainThread( () =>

{

    MaiNewsList.ItemsSource = newsList.Where(x => x.Type.Equals((int)NewsType.MainNews)).OrderBy(x => x.Sort).ToList();

});


查看完整回答
反对 回复 2023-08-13
  • 1 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信