最终任务是:将一些 WPF 控件绑定到 LINQ 查询。
搜索“Bindable LINQ”后,我发现多个引用Obtics、Bindable Linq和Continuous LINQ。他们做我想做的事,但有一件事让我感到困惑:他们的年龄。似乎他们的发展几乎在 2009-2010 年的某个时间停止,这很可疑。
使用它们仍然合理吗?它们最终不是被某些标准库方法所取代吗?
最终任务是:将一些 WPF 控件绑定到 LINQ 查询。
搜索“Bindable LINQ”后,我发现多个引用Obtics、Bindable Linq和Continuous LINQ。他们做我想做的事,但有一件事让我感到困惑:他们的年龄。似乎他们的发展几乎在 2009-2010 年的某个时间停止,这很可疑。
使用它们仍然合理吗?它们最终不是被某些标准库方法所取代吗?
经过更多研究:
让我介绍一下我的库ObservableComputations。它是可用于将 WPF 控件绑定到类似 LINQ 的查询的生产就绪库。
您正在寻找的是反应式扩展(Rx.Net)。为了使用 WPF MVVM,有一个名为ReactiveUI的库。
然后,您可以使用ReactiveList而不是ObservableCollection
在该列表上定义您的 linq 查询。
代码形成他们的文档:
DocumentList = new ReactiveList<Document>() {
ChangeTrackingEnabled = true,
};
DocumentList.ItemChanged
.Where(x => x.PropertyName == "IsDirty" && x.Sender.IsDirty)
.Select(x => x.Sender)
.Subscribe(x => {
Console.WriteLine("Make sure to save {0}!", x.DocumentName);
});