当前位置: 首页 > news >正文

手机网站建设渠道成都建设网站报价

手机网站建设渠道,成都建设网站报价,网站最上面标题怎么改,idzoom室内设计师网ReactiveUI MVVM框架#xff08;1#xff09;-Collections ReactiveUI使用动态数据#xff08;DynamicData#xff09;用于集合的操作。 当对动态数据集合进行更改时#xff0c;会产生更改通知#xff0c;通知表示为ChangeSet#xff0c;里面包含了更改信息#xff0…ReactiveUI MVVM框架1-Collections ReactiveUI使用动态数据DynamicData用于集合的操作。 当对动态数据集合进行更改时会产生更改通知通知表示为ChangeSet里面包含了更改信息多个更改通知为IObservableChangeSet。动态数据提供了两种特定的集合分别是SourceCacheTObject, TKey和SourceListT。第一个为带key的字典式也就是不能重复第二个为集合式。如何要将这两种集合转换为IObservableChangeSet可以使用Connect方法。 需要注意的是这跟WPF中常用的ObservableCollectionT的实现方式是不同的。 简单使用 从wpf中常用的ObservableCollectionT得到IObservableChangeSet。 // myList is ObservableCollectionT // myDerivedList is IObservableListT var myDerivedList myList.ToObservableChangeSet().Filter(t t.Status Something).AsObservableList();// myList is ObservableCollectionT // myDerivedCache is IObservableCacheT, TKey var myDerivedCache myList.ToObservableChangeSet(t t.Id).Filter(t t.Status Something).AsObservableCache();以上两种方式是线程不安全的加入myList绑定到了View上那么在View上也可能对myList进行更改。推荐的方法是先创建一个数据源。 var myList new SourceListT() var disposable myList.Connect() // 获得IObservableChangeSet.\\some other operation这种方法的好处是可以在后台线程上进行维护。比如 //ReadOnlyObservableCollection可以多线程操作 ReadOnlyObservableCollectionT bindingData; var disposable mySource.Connect() // make the source an observable change set.Sort(SortExpressionComparerT.Ascending(t t.DateTime)).ObserveOn(RxApp.MainThreadScheduler) // mySource 会在其他线程上更新.Bind(out bindingData).Subscribe(); ReactiveUI使用动态数据 开发时会遇到可变集合和不可变集合当对不可变集合进行处理时简单情况下可以使用ObservableAsPropertyHelperT它包含一个ObservableT。每次给集合赋予新的集合时会触发通知事件。 而对于可变集合往往采用动态数据的方式。 案例 public class Service {//定义一个数据集private readonly SourceListbool _items new SourceListbool();//暴露给外面public IObservableIChangeSetbool Connect() _items.Connect();public Service(){ _items.Add(true);_items.RemoveAt(0);_items.Add(false);} }ReadOnlyObservableCollection 动态数据往往使用ReadOnlyObservableCollectionT之类的类型对外公开而不是它本身的类型。IObservableIChangeSetT 和 IObservableIChangeSetTObject, TKey是可以观测类型IObservableIChangeSetT中含有集合更改的内容第一次使用ToObservableChangeSet()时会发出集合的当前状态。SourceList和SourceCache是可以使用多线程进行创建IObservableIChangeSetT等通常SourceList和SourceCache应该定义为Private而是通过Connect方法暴露给View。 public class ViewModel : ReactiveObject {private readonly ReadOnlyObservableCollectionbool _items;public ReadOnlyObservableCollectionbool Items _items;public ViewModel(){var service new Service();service.Connect()// Transform 和Select方法类似只不过是观察一个集合的变化且将元素投影到另一个集合.Transform(x !x)// Filter 类似于Where.Filter(x x)// 确保更先到UI线程..ObserveOn(RxApp.MainThreadScheduler)// 通过 .Bind() 方法实现可变集合包含新的数据并且刷新UI.Bind(out _items).Subscribe();} }ObservableCollectionExtended ObservableCollectionExtendedT是一个单线程集合如果要同步VM中的两个集合可以将其中一个声明为ObservableCollectionExtendedT另一个声明为ReadOnlyObservableCollectionT然后使用.ToObservableChangeSet()方法将其转换为IObservableIChangeSetT。 public class SynchronizedCollectionsViewModel : ReactiveObject {private readonly ReadOnlyObservableCollectionbool _derived;public ReadOnlyObservableCollectionbool Derived _derived;public ObservableCollectionExtendedbool Source { get; }public SynchronizedCollectionsViewModel(){Source new ObservableCollectionExtendedbool();Source.ToObservableChangeSet().Transform(value !value)// 在这里不需要使用ObserveOn更新UI线程因为它是单线程.Bind(out _derived).Subscribe();Source.Add(true);Source.RemoveAt(0);Source.Add(false);Source.Add(true);} }根据集合中的更改 ReactiveObject类实现了INotifyPropertyChanged动态数据可以对ReactiveObject类进行跟踪。 // collectionOfReactiveObjects 是 ObservableCollectionT // T inherits 继承自 ReactiveObject // databasesValid 则是 IObservablebool var databasesValid collectionOfReactiveObjects.ToObservableChangeSet().AutoRefresh(model model.IsValid) // 订阅IsValid属性的更改.ToCollection() // 获取新项目集合.Select(x x.All(y y.IsValid)); // 验证是否满足条件.// 将IObservablebool 转为视图模型 // _databasesValid 是ObservableAsPropertyHelperbool 类型 _databasesValid databasesValid.ToProperty(this, x x.DatabasesValid);ReactiveList转为动态数据 如果使用的是ReactiveListT并且仅从UI线程添加/删除则使用ObservableCollectionExtendedT。
http://www.dnsts.com.cn/news/107587.html

相关文章:

  • 自己做网站需要花钱吗大网站的建设重点
  • 自己怎么做鲜花网站文章标题-栏目名称-网站名 dede
  • 医药网站开发佛山网站建设骏域
  • 微信表情包制作网站如何利用云服务器进行网站建设
  • 做装修广告网站好酷炫网站
  • php做网站怎么样苏州工业园区gdp
  • 汽车行业市场分析那个网站做的好一个服务器可以备案几个网站吗
  • 内网建站软件网站栏目名称
  • 企业网站教程 优帮云unas做网站服务器
  • 物流网站和数据库建设四川住房和城乡建设厅网站不能打开
  • 内蒙网站建设wordpress安装插件慢
  • 做网站页面遇到的问题了解深圳网站页面设计
  • 北京微信网站建设报价单seo搜索优化工具
  • 东莞凤岗企业网站建设推广杭州 电商设计网站建设
  • 深圳提供网站建设服务平台常州网站运营公司
  • 关于旅游网站建设的方案10个零网站建设
  • 网站内部资源推广百度推广关键词质量度
  • 网站建设吉金手指专业13seo超级外链发布
  • 制作网站的商家vps云主机可以做网站
  • 2014最新网站模板-网页模板免费下载-风格吧网站开发语言用什么好
  • 广东营销型网站建设网页qq登录保护开启不了
  • 泗阳网站建设网站开发经济可行性分析怎么写
  • 网站创建流程包括哪些步骤电子商务网站多少钱
  • 网站推广机构苏州有哪些it大厂
  • 电商网站开发设计方法营销手段
  • 模板网站建设哪家专业合肥市建设工程市场信息价网站
  • 长沙市师德师风建设网站电商培训机构哪家强
  • 建设一个旅游电子商务网站东莞阳光网官网投诉中心
  • 高端网站建设 来磐石网络郑州建设局网站
  • wordpress官方文档网站建设与优化计入什么科莫