爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      【Win 10应用开发】分阶段进行数据绑定

      首页 知识中心 软件开发 文章详情页

      【Win 10应用开发】分阶段进行数据绑定

      2024-06-26 06:18:07 阅读次数:99

      App,Win10

      使用x:Bind扩展标记进行数据绑定,是在编译阶段完成,至于说性能优化方面,大概主要是优化CPU资源的使用,因为免去了运行阶段进行绑定的过程。当然,使用这个标记仅仅是绑定上的优化,并不包括数据源。数据源的合理提取就得看开发者的策略了,如果你要提取很大批量的数据放到内存中,那么,你是免不了要消耗大量内存的。这个事情,得看实际情况而定了,任何的优化都不是绝对的,个别情况下,不优化反而会更好。

      x:Bind在界面绑定不经常变更的情况下用(数据一旦显示到界面,就不再改动),会好一些。如果数据更新频繁,估计Bind和Binding的效果差不多。

      在使用x:Bind标记时,可以结合使用x:Phase标记,该标记指定一个整数值,该值是从0开始的,如0、1、2、3等。在数据加载时会根据x:Phase的值来排序,即Phase为0的先加载,1的次之,最后加载2的。Phase的使用有点像ZIndex值。Phase值越大,就越放在后面加载,但值不一定要连续的,你可以设置成0、1、3、4、7。

      为啥要弄这玩意儿呢。主要是针对某个数据源实例的某些属性可能无法立刻返回内容的情况。比如,要加载一个山寨汽车的产品列表,可能每款汽车信息都会配上一张图片,以方便用户查看汽车的外观和造型。我们知道,如果数据是从网络上提取的话,图片可能会加载得较慢。要是等所有对象的所有属性都加载完成再显示到界面上,给用户的感觉很不好,你的应用就有可能被差评。

      如果用上了x:Phase值,先把汽车型号、山寨厂商名字、配置参数等先加载,Phase设置为0;由于图片比较慢,就将它设为Phase = 1。如此一来,数据在提取时不再等待图片加载就直接显示到界面上;随后,当图片属性返回有效值了再慢慢把图片显示出来。虽然用户看不到山寨车的图片,但至少可以看到汽车的相关信息了。

      好,说了那么多废话,咱们还是上实例吧。

      首先,我定义了一个Student类,表示一位学生信息,至于说是哪个学校的学生,你就别管了,反正不是女子学校。

          public class Student
          {
              private string _name;
              private string _city;
              private int _age;
              private float _height;
      
              public string Name
              {
                  get { return _name; }
                  set { _name = value; }
              }
              public string City
              {
                  get
                  {
                      Task.Delay(975).Wait();
                      return _city;
                  }
                  set { _city = value; }
              }
      
              public int Age {
                  get
                  {
                      Task.Delay(1100).Wait();
                      return _age;
                  }
                  set { _age = value; }
              }
              public float Height {
                  get
                  {
                      Task.Delay(1899).Wait();
                      return _height;
                  }
                  set { _height = value; }
              }
          }

      可能有小伙伴看不懂各个属性的get访问器里面是啥意思,如果真是这样,老周觉得应该拉你去批斗,说明你没认真学.net 4.x。Task.Delay方法表示延迟N毫秒的意思,就相当于以前的Thread.Sleep方法。不过嘛,Task的Delay方法的返回类型是Task,这说明它是可以异步等待的,但是,await是用在方法中的,不用于属性,所以为了让代码在这里暂停N毫秒,我还得调用一下Wait方法,这样一来,代码就会停在那里,等Delay完了才会继续执行。

      为什么我要在属性的get访问器中拖延一下时间呢,这还用说嘛,当然是为了模拟网速慢,加载慢的情况。

      随后,用XAML声明列表控件,并设计一下它的项数据模板,以便能显示Student类的各个属性的值。

              <ListView Name="lv" ReorderMode="Enabled">
                  <ListView.ItemTemplate>
                      <DataTemplate x:DataType="local:Student">
                          <StackPanel>
                              <TextBlock FontWeight="Bold" FontSize="24" Text="{x:Bind Name}" x:Phase="0"/>
                              <TextBlock Text="{x:Bind City}" x:Phase="1"/>
                              <TextBlock Text="{x:Bind Age}" x:Phase="2"/>
                              <TextBlock Text="{x:Bind Height}" x:Phase="3"/>
                          </StackPanel>
                      </DataTemplate>
                  </ListView.ItemTemplate>
              </ListView>

      各个值的Phase分别是0、1、2、3,让这几个值产生加载的先后顺序。如果不显式设置x:Phase值,就表示它使用默认值0,即立即加载。各位要注意,如果你在DataTemplate模板中用x:Bind标记进行绑定,那么,在DataTemplate上必须用x:DataType标记指明数据源对象的类型。因为这种绑定是在编译阶段完成的,编译必须知道数据源的确切类型,不然的话,容易造成类型安全问题。更何况,你不这样指定,编译器是不会让你编译的。

      运行应用程序后,你会看到,学生姓名马上就出来了,但其他属性值会慢慢出现。请看下图表演。

      【Win 10应用开发】分阶段进行数据绑定

      好了,废话就说到这儿了,估计该知识点没什么难度的,别告诉我你没看懂。如果有这个示例你还不懂,那老周只好“伤心秦汉,生灵涂炭,读书人一声长叹”了。

      其实,老周这个示例是有超级大Bug的,但为了简单演示,就不管那么多了。

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://www.cnblogs.com/tcjiaan/p/4975523.html,作者:东邪独孤,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:【Win10 应用开发】自定义应用标题栏

      下一篇:【Python Practice】Day 3- Question 10-13

      相关文章

      2025-04-09 09:11:38

      Vue学习笔记:$panrent $root

      Vue学习笔记:$panrent $root

      2025-04-09 09:11:38
      App , root , 组件
      2025-03-28 07:41:55

      antDesign在react项目中样式失效

      antDesign在react项目中样式失效

      2025-03-28 07:41:55
      App , css , react , src , 安装 , 引入
      2025-01-06 08:42:57

      Vue3学习笔记:使用$emit实现子组件传递数据给父组件

      Vue3学习笔记:使用$emit实现子组件传递数据给父组件

      2025-01-06 08:42:57
      App , event , vue , 事件 , 组件 , 自定义
      2025-01-06 08:42:57

      Vue学习笔记:组件 slot等综合示例

      Vue学习笔记:组件 slot等综合示例

      2025-01-06 08:42:57
      App , vue , 组件
      2024-11-19 09:36:27

      利用区块链技术实现返利App的透明化追溯

      区块链是一种分布式账本技术,通过去中心化的网络节点共同维护和管理数据,保证数据的不可篡改性和透明性。每个区块包含了交易信息及其时间戳,通过加密技术确保数据的安全性和一致性。

      2024-11-19 09:36:27
      App , 区块链
      2024-11-15 06:53:34

      Vue中父组件和子组件的关系

      Vue中父组件和子组件的关系

      2024-11-15 06:53:34
      App , props , 传递 , 组件
      2024-06-26 06:18:07

      【Win10 应用开发】使用“实时可视化树”工具查看应用界面元素

      实时可视化树工具只能查看XAML定义的界面,如WPF和Win App。现在,Win App都编译为本地代码,直接找可执行文件是走不通了。

      2024-06-26 06:18:07
      App , Win10
      2024-06-26 06:18:07

      【Win 10 应用开发】多媒体转码

      【Win 10 应用开发】多媒体转码

      2024-06-26 06:18:07
      App , Win10
      2024-06-26 06:18:07

      【Win10应用开发】签名与验证

      对数据进行签名和验证,是为了防止数据被“盗版”。比较常规的做法是通过公钥进行验证。

      2024-06-26 06:18:07
      App , Win10
      2024-06-26 06:18:07

      编写Windows服务疑问2:探索服务与安装器的关系

      编写Windows服务疑问2:探索服务与安装器的关系

      2024-06-26 06:18:07
      App , Win10
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5245010

      查看更多

      最新文章

      【Win 10 应用开发】多媒体转码

      2024-06-26 06:18:07

      【Win10 应用开发】使用“实时可视化树”工具查看应用界面元素

      2024-06-26 06:18:07

      【Win10应用开发】签名与验证

      2024-06-26 06:18:07

      【Win10 应用开发】解决VS 2015 RC不能调试手机应用的问题

      2024-06-26 06:17:16

      【Win 10 应用开发】UI Composition 札记(二):基本构件

      2024-06-26 06:17:16

      【Win 10应用开发】AdaptiveTrigger在自定义控件中是可以触发的

      2024-06-26 06:17:16

      查看更多

      热门文章

      Java基础(6)-Win10系统下载安装配置JDK1.8

      2023-04-07 06:44:05

      【Win10应用开发】自定义磁贴通知的排版

      2024-06-17 09:52:23

      【Win10应用开发】签名与验证

      2024-06-26 06:18:07

      【Win 10应用开发】AdaptiveTrigger在自定义控件中是可以触发的

      2024-06-26 06:17:16

      【Win 10应用开发】Adaptive磁贴模板的XML文档结构

      2024-06-17 10:03:58

      【Win10 应用开发】使用“实时可视化树”工具查看应用界面元素

      2024-06-26 06:18:07

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      【Win10 应用开发】自定义应用标题栏

      【Win 10应用开发】Adaptive磁贴模板的XML文档结构

      【Win 10应用开发】AdaptiveTrigger在自定义控件中是可以触发的

      【Win10 应用开发】集成语音命令

      【Win 10 应用开发】多媒体转码

      【Win 10 应用开发】UI Composition 札记(二):基本构件

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号