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

万网怎么建设网站南充市建设局官方网站

万网怎么建设网站,南充市建设局官方网站,网站开发学多久,cdq百度指数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.w-s-a.com/news/632181/

相关文章:

  • 国内外做gif的网站wordpress数据库教程
  • 成都建站平台自己做一个网站需要多少钱
  • 景区旅游网站平台建设公司企业网站源码
  • 免费高清网站推荐喂来苏州网络科技有限公司
  • php做的大型网站有哪些备案博客域名做视频网站会怎么样
  • 去哪网站备案吗昭通网站建设
  • flash企业网站源码建筑材料采购网站
  • 网站可以换虚拟主机吗部门做网站优点
  • 如何做分类网站信息营销莱芜网页定制
  • 班级网站建设感想中国做视频网站有哪些
  • 做刷票的网站wordpress图片链接插件
  • 给客户做网站图片侵权沈阳做网站的地方
  • 网站开发步骤规划蓝天云免费空间主机
  • 网站字体规范wordpress找不到页面内容编辑
  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意
  • 学校网站建设目的与意义合肥网页定制
  • 网站查询地址网站建设与维护费用
  • 做网站哪些软件比较好合肥外贸网站建设公司
  • 建网站需要哪些条件专业网站设计报价
  • 定制网站开发技术化妆品的网站布局设计图片大全
  • 网站模糊设计发布产品的免费平台有哪些