首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何做一个干净的实现来从后台线程更新UWP ListView中的项目?

要从后台线程更新UWP ListView中的项目,可以采用以下步骤来实现一个干净的解决方案:

  1. 创建一个后台线程:使用C#中的Task.RunThreadPool.QueueUserWorkItem等方法创建一个后台线程,以确保UI线程不会被阻塞。
  2. 在后台线程中更新数据:在后台线程中执行需要更新ListView的操作,例如从数据库或网络获取数据。
  3. 使用Dispatcher更新UI:由于UI元素只能在UI线程上更新,因此需要使用Dispatcher将更新操作发送到UI线程。可以使用CoreDispatcher类的RunAsync方法将更新操作封装在一个委托中,并使用DispatcherPriority指定优先级。
  4. 更新ListView数据源:在UI线程上,通过调用ListView的数据源的更新方法来更新ListView中的项目。可以使用ObservableCollection作为ListView的数据源,以便在更新数据源时自动通知UI进行更新。

以下是一个示例代码:

代码语言:txt
复制
// 后台线程中更新数据
await Task.Run(() =>
{
    // 从后台获取数据
    var newData = GetDataFromBackend();

    // 使用Dispatcher更新UI
    Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(
        Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
        {
            // 更新ListView数据源
            YourObservableCollection.Clear();
            foreach (var item in newData)
            {
                YourObservableCollection.Add(item);
            }
        });
});

在这个示例中,GetDataFromBackend表示从后台获取数据的方法,YourObservableCollection表示ListView的数据源。

请注意,这只是一个基本的示例,具体的实现可能因应用程序的需求而有所不同。另外,腾讯云相关产品和产品介绍链接地址请参考腾讯云官方文档或咨询腾讯云官方支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

dotnet 入门到放弃 500 篇文章合集

本文是记录我入门到放弃写博客 博客包括 C#、WPF、UWP、dotnet core 、git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 入门到放弃...输出 C# 如何项目引用x86 x64非托管代码 C# 已知点和向量,求距离点 C# 强转会不会抛出异常 C# 很少人知道科技 C# 快速释放内存大数组 C# 搜索算法 C# 获得设备usb...uwp hashcash win10 uwp httpClient 登陆CSDN win10 uwp json win10 UWP ListView 模仿开始菜单 win10 UWP ListView...上传代码 CodePlex 为何 987654321 123456789 值是 8.0000000729 为何使用 DirectComposition 产品经理——做一个自己系统 以前项目格式迁移到...和Floyd 矩阵传递闭包 在 windows 安装 Jekyll 域名 大文件存储和备份 如何使用 C# 爬虫获得专栏博客更新排行 如何使用 Q# 如何使用 Telegram 如何使用本模板搭建博客

10.4K20

WPF 多线程下跨线程处理 ObservableCollection 数据

如此设计可以极大规避新手使用多线程造成线程安全问题,由于多线程安全问题难以定位,以及解决多线程问题需要较多专业知识。一个优秀框架设计上,一定需要满足不同层次开发者接入需求。...对象和修改或添加数据,完成之后再加入到 UI 线程 为了方便说明,本文新建了一个项目,本文所有代码都可以在本文后面找到获取方法 添加一个简单界面方便说明,代码如下 ...先在后台线程创建 ObservableCollection 对象,然后在后台线程完成处理逻辑,最后赋值给 ListView ItemsSource 属性,实现更新界面逻辑 private async...此时在 UI 线程里面,通过 Task.Run 切换到后台线程,在后台线程完成 list 变量初始化逻辑。...= newList; } 以上方法可以实现后台线程对现有的和 UI 绑定 ObservableCollection 更改,由于是放在后台线程执行,基本上不需要担心拷贝耗时 第三个方法是自己实现一个类似

3.1K10

win10 uwp 商业游戏 界面添加图标感谢

可以知道游戏主页面需要有仓库、买东西店铺、买东西地方和工厂。 那么需要想游戏是如何。 因为这个游戏是我昨天看到买菜的人说,我就想去做一个。...现在物品总量可以不计算。 买东西的人有这些属性,所有的钱,级别。买东西。级别就是商店有多少信誉在可以吸引这个买东西的人,这里写为一个列表 但是开始先做一个简单程序,之后在添加比较多功能。...Source 值是使用ms-appx,这里就是资源获得,如果希望知道这个代码是如何写,我有博客win10 uwp 访问解决方案文件 里面就告诉大家如何写。...那么如何做这个界面,简单方法是做一个用户控件,这个控件界面很简单,但是后台需要写一些属性,这个属性就是买入的当前,买入最大值,对应还有卖出。...于是这个界面的后台代码就是几个属性,还有在设置 ViewModel 时更新属性 public sealed partial class JediahPage : UserControl {

77010

UWP第三方简书客户端分享

异步线程处理我在上一篇《讲讲我在Windows10(uwp)开发遇到一些坑》已经说过了.这里说下贴一下异步Command代码: public class AsyncCommand : AsyncCommandBase...对于UWP下拉刷新,我在博客园里看到了几种实现方式: UWP一种下拉刷新实现 只贴了一种,因为目前实现下拉刷新方式都是ListView外部套一个ScrollViewer实现,这种实现方式有个严重问题就是....然后后面是更新和加载更多时候事件....: Github 写在最后 并不是很看好微软这种实现跨平台.除了目前UWP这门技术不成熟,包括很多缺失,诸如异步线程处理问题,缺少对移动端滑动支持(不像android一样可以底层开始实现一个行云流水般手势操作...这个客户端其实还有很多不好地方,比如对于异步线程启动关闭控制不足,缺少log,缺少对于缓存系统管理,还有导航系统不足,不同网络环境下客户端优化问题.但是我认为仅仅作为一个研究学习项目,

1.6K50

win10 uwp listView 绑定前一项 WPF 绑定前一项UWP 绑定前一项

大神问,如何ListView 绑定前一项,于是我下面告诉大家如何ListView 绑定前一项 WPF 绑定前一项 可以使用绑定 RelativeSource 就可以绑定前一项,请看代码...> UWP 绑定前一项 如果需要在ListView 让每个项绑定前一个项内容,那么就是本文要说。...,但是如果需要绑定上一项就需要添加一个新类 假如从后台拿到一个 TextBlock ,那么如何从这个 TextBlock 拿到这个 DataContext ,可以获得他上一级,虽然从这里拿到也可以...var grid = (FrameworkElement) text.Parent; var foo = (Foo) grid.DataContext; 那么如何...Grid 拿到ListView ,如果拿到这个就可以拿到绑定数据,所以就可以绑定数据拿到当前上一项,然后绑定。

94810

win10 uwp listView 绑定前一项

大神问,如何ListView 绑定前一项,于是我下面告诉大家如何ListView 绑定前一项 WPF 绑定前一项 可以使用绑定 RelativeSource 就可以绑定前一项,请看代码...> UWP 绑定前一项 如果需要在ListView 让每个项绑定前一个项内容,那么就是本文要说。...,但是如果需要绑定上一项就需要添加一个新类 假如从后台拿到一个 TextBlock ,那么如何从这个 TextBlock 拿到这个 DataContext ,可以获得他上一级,虽然从这里拿到也可以...var grid = (FrameworkElement) text.Parent; var foo = (Foo) grid.DataContext; 那么如何...Grid 拿到ListView ,如果拿到这个就可以拿到绑定数据,所以就可以绑定数据拿到当前上一项,然后绑定。

59420

UWP ListView数据绑定

在制作UWP个人项目时需要用到数据绑定,网上教程大都不全,特此记录下自己使用方法。 绑定源 指定一个类用来保存数据,以我自己项目为例,需要定义“邮件”类。...进行了页面跳转,即使使用GoBack()返回,原页面也会重新加载,因此建议使用静态类避免数据丢失,并且修改集合时也不需要获取MainPage实例 创建绑定 在xaml文件头定义命名空间 由于我Email...类在MailSystem_UWP.Bean下,因此定义该命名空间为local xmlns:local="using:MailSystem_UWP.Bean" 在xaml文件Page标签内定义模板 <Page.Resources...属性,你需要实现nameget和set方法,像这样 public int id { get; set; } 对于非字符串变量,例如System.DateTime,系统会自动调用toString() DataTemplate...,ListView中会自动更新 data.Clear(); for(int i = 0; i < emails.Count; i++) { //emails是ArrayList实例

1.4K10

win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序 VisualStudio创建项目引用项目创建通用结构设置控制器运行网站UWP 连接上传数据

本文是一个非常简单博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台。 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单。...如果完全没有开发过 UWP 程序,那么请看win10 uwp 如何开始写 uwp 程序 - CSDN博客 dotnet standard 创建一个 dotnet standard 可以让多个项目使用,在这里放一些类定义...对于很多个人项目,不使用 sql 读写数据库也是没问题。但是对于大型项目还是需要 sql ,所以有空去学一下还是可以。...} 现在 UWP 软件是可以编译通过,但是运行是不会显示内容 下载列表 在 MainPage.xaml.cs Button_OnClick 调用 ViewModel 函数用来更新数据...默认 Get 方法就是通过 GetRoqawzemJajene 实现

1.3K10

张高兴 Xamarin.Forms 开发笔记:为 Android 与 iOS 引入 UWP 风格汉堡菜单 ( MasterDetailPage )

所谓 UWP 样式汉堡菜单,我曾在“张高兴 UWP 开发笔记:汉堡菜单进阶”里说过,也就是使用 Segoe MDL2 Assets 字体作为左侧 Icon,并且左侧使用填充颜色矩形用来表示 ListView...MasterPageItem.cs   和 UWP 汉堡菜单一样,首先要创建一个类,作为导航项目,用来绑定 ListView 。名字叫 MasterPageItem.cs 。   ...由于要实现双向绑定,还要实现接口 INotifyPropertyChanged。要注意是,Color 类型为 Xamarin.Forms 。... MasterPage.xaml 页面 Title 一定要给,要不然会报错,可以在后台 cs 文件修改 Title 属性,也可以在 Xaml 根元素修改 Title。...,需要给 MasterPage.xaml 根 Grid 赋值一个 Padding="0,25,0,-6",但 UWP 项目却不需要,这点我会在文末给出代码。

4.5K100

win10 uwp 如何使用DataTemplate 转换绑定Event到Command绑定 ObservableCollectionDataTemplate 绑定 ViewM

这是数据模板,一般用在数组绑定,显示数组元素。...假如我们有一个列表,列表里是书,包括书名、作者、还有出版,那么我们只有源信息,如何把它显示到我们ListView,就需要DataTemplate。...staticResource 首先是创建一个类,这个类继承IValueConverter,于是就有两个方法,我们要实现两个方法,一个是数据源转换到 xaml ,一个是反过来。...但是有时候可能关心他是如何,关心原因:没有实现 AddRange,也就是 ObservableCollection 对一次添加多个项比较难,需要一个一个。...} 写法绑定到指定元素,所以获得数据,但是 UWP 不能这样写,可以使用下面的代码 <ListView.ItemTemplate

2.6K20

win10 uwp 商业游戏 1.1.5 商店可以卖出数多个游戏修炼游戏相关文章

下面我告诉大家如何在游戏中添加多个游戏。包括数据共用,导航。 开始问到小伙伴,他说这个游戏因为玩到后面发现可以买东西很多,于是就不能继续玩。...中间 ListView 就来绑定按钮,绑定按钮参见:win10 UWP ListView 添加列表 如果需要绑定ListView ,需要先创建一个类型,这个类型直接包括显示文字和跳转页面等,这里先显示文字...这样不依赖实现是比较好。 假如换了个游戏,而这个游戏没有这里想要的人物类,如何加上原有游戏?通过接口就可以。...interface IDfeppzyTmofs { } 人物接口需要实现,所以写一个类实现,最后这个类是不需要 class TdsumTzwok : IDfeppzyTmofs...,因为可以通过更新人物属性更新

2.6K00

win10 uwp 列表模板选择器 根据数据位置根据不同数据

如果在 UWP 需要定义某些列显示和其他列不同,或者某些行显示和其他行不同,那么可以使用 列表模板选择器 定义自己列表,让列表存在不同显示。...根据数据位置 本文告诉大家如何做出下面的控件,可以看到这使用ListView ,但是第一个元素显示和其他元素不同,看起来就是面包屑导航 ?...如何去背景请看win10 UWP ListView 就是把ListViewItem复制,然后去掉ListViewItemBackgroundPointerOver 和 SelectedBackground...实际把很多属性去掉就可以做出比较好效果,但是选中修改颜色还需要后台写。这是我修改 Template 可以直接复制使用。...---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/lindexi/post/win10-uwp-%E5%88%97%E8%A1%A8%E6%A8%

1.2K10

win10 uwp 通过 win2d 画出笔迹 界面笔迹性能原理完全控制墨迹多指输入转换笔迹无限漫游

本文告诉大家如何UWP 上让 win2d 画出笔迹,通过实际测试发现在 UWP 笔迹性能比在 WPF 高很多。...因为在 InkCanvas 使用了不清真的方式实现触摸收集点方法,而使用 Pointer 是通过消息循环给到程序,同时 Pointer 还需要经过路由事件,这样就让笔迹书写速度不够快。...如果 InkCanvas 只是更快收到触摸消息,那么也无法做到像现在这么快速度。尝试写一个空白 UWP 程序,在里面添加笔迹控件,在移动过程,进入断点,这时你还可以继续在 UWP 应用上画。...也就是 InkCanvas 书写和 UWP 线程是分开UWP 笔迹渲染是分为三个过程,第一个过程是跟随,也就是将当前点和上一个点直接连出一条线。...在动态笔迹只是做渲染,用最快算法触摸收集到点画出来,而静态笔迹就是将动态笔迹转换为普通元素,可以用来做业务 当然大家也不会关注为什么笔迹在 UWP 那么快,于是就继续在后台代码添加设置。

1K20

win10 uwp 兴趣线

本文讲的是如何做一个时间轴样子东西但我们放不一定是时间,可能是我们时间。我把它放在我CSDN阅读,我界面做出来很差,但是应该读者能做出很漂亮。...要我们ListViewItem有和ListView一样宽度可以简单设置ItemContainerStyle 兴趣线 我要想说下兴趣线是什么,这个很多人叫时间轴,UWP时间轴做法其实就是一个ListView。...我们先用Rectangle画我们第一个线,我们需要他就在中间 HorizontalAlignment="Center" 放在一个Grid中间就是我们设置水平为center 然后我们在右边放一个Rectangle... 开始设计我们不知道宽度和高度值,每次修改都需要改好多个,那么我们如何就修改一个?

33420

win10 uwp 商业游戏 1.2.1 修改数值点击添加技能添加技能创建.net共用项目其他文章感谢

上一个游戏已经告诉大家如何写多个游戏,现在继续写这个无聊游戏。 希望大家在看这篇文章之前先看 win10 uwp 商业游戏,在这个文章告诉了大家如何创建游戏。...下面告诉大家使用列表模板 实际在win10 uwp 列表模板选择器已经有告诉大家如何写了,所以这里只是很简单告诉大家,这里代码需要如何写 先创建一个类 DyqbdpreKuoujeq ,这个类就是选择不同数据...这样多次点击添加技能就能找到一个升级需要比较少技能值 创建.net共用项目 在过了一个月,我UWP还是没有安装成功,所以我只能使用 WPF 来写,但是如何把 WPF 写直接放在 UWP,一个简单方法是创建共享项目...现在创建一个 KnxetfaHjpkymq 项目,让 WPF 项目引用他,然后把一些类 WPF 放在这个项目。 关于.net Framework 对应,请看下面 ?...其他文章 win10 uwp 商业游戏 win10 uwp 商业游戏 1.1.5 感谢 感谢 无名图床 提供图片上传 最近我图床已经流量用太多了 不过我更新了图床界面,现在界面很好看了

1.2K10

如何使用Fluent Design System (上)

Fall Creators Update(16299)如何实现FDS以及其它FCU新API,极具参考价值。...不过目前FDS中材质应用场景有明确规定,并不是和以前材质化泛滥时一样连所有按钮都材质化。材质回归可以看出UWP承载主体已经屏幕延伸到MR。 Acrylic是目前FDS主打的材质。...2.2 Light UWP使用CompositionLight可以制造很多很有趣光照效果,FDS主打的光照特效是Reveal,在FCU中大部分Items Control(ListView、GridView...只需在源页面和目标页面的操作对象使用相同Connected.Key即可轻松实现Connected animations。...3.1 使用NavigationView更新导航菜单 以前很多教程都专门讲解了怎么制作汉堡包菜单,现在UWP终于提供了默认方案。

2.4K30

在 WPFUWP 实现一个可以用 await 异步等待 UI 交互操作 Awaiter

即便有些耗时操作没有返回可等待类型,我们也可以用一句 Task.Run(action) 包装(同步转异步 - 林德熙 也有说明);不过副作用就是 Run 里面的方法在后台线程执行了(谁知道这是好处呢还是坏处呢...问题就在于,有些“耗时”操作根本就无法放入后台线程,典型莫过于“耗时” UI 操作。本文将通过实现一个适用于 UI 可等待类型解决这种 UI “耗时”等待问题。...某个函数执行需要显示一个用户控件,用户填写控件信息并确定后,函数才继续执行。这种感觉很像模态窗口,但我们却是在同一个窗口内实现,不能通过模态窗口实现我们功能。...(UWP ContentDialog 就是这么干。) 我们需要在后台线程创建一个控件,创建完毕之后在原线程返回。这样我们就能得到一个在后台线程创建控件了。...实现目标 DispatcherAsyncOperation 现在,我们实现我们目标。 回顾一下,我们希望实现一个方法,要求能够在后台线程创建一个 UI 控件。

3.2K31
领券