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

网站建设实施设计公司取名字大全集

网站建设实施,设计公司取名字大全集,良精企业网站管理系统,德阳市建设管理一体化平台网站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://wiki.neutronadmin.com/news/45698/

相关文章:

  • wordpress可以做企业网站网站后台程序怎么做
  • 沈阳制作网站企业资深的食品行业网站开发
  • 重庆网站公司推荐360易托管建站工具
  • 德州做网站公司电话投资项目
  • 陕西专业网站建设价格汕头制作网站
  • 建设银行曲江支行网站公司建了网站怎么做分录
  • 商学院网站建设建议wordpress固定连接怎么设置好
  • 深圳平湖做网站html编写新闻页面
  • asp.net网站开发四酷全书金融软件开发公司排名
  • 做网站和做系统的区别seo快速排名
  • 公司网站建设的目标是什么wordpress书插件
  • 网站建设的意义是什么手机关键词seo排名优化
  • 网站的后端怎么开发网站会员体系
  • 国外做网站卖东西要什么条件怎么申请信用卡收款网站接口
  • 深圳阿里网站设计公司大连个人网站开发制作
  • 电子商务网站的特点尚德建设集团网站
  • 建设一个朋友的网站百姓畅言六安杂谈
  • 怎么获取网站数据做统计数据wordpress 调用所有
  • 修水县城乡建设局网站昆山企业网站设计
  • wordpress修改网站icon做网站jsp好还是
  • 宜昌市建设厅官方网站龙之向导外贸经理人网站
  • 做外贸最适合的网站系统深圳市建设工程
  • 在盐城做网站的网络公司电话上海建设集团网站
  • 自己做的网站怎么绑定域名怎样为公司做网站
  • 哪个网站的ppt模板最好小程序制作封面
  • 在线手机网站制作wordpress主题sns
  • 建网站公司锦程无锡网站制作中心
  • 两学一做考试网站数字币网站开发
  • 网站开发需要用例图吗国内图片下载网站
  • 网站建设网站排名前端开发专业