可绑定Linq的好处是什么?

可绑定Linq的好处是什么?,linq,bindable-linq,Linq,Bindable Linq,我是Linq的新手,刚刚开始在项目中使用普通绑定和sql查询。。。 然后我遇到了Bindable Linq术语 有人能告诉我如何使用它和它是如何有用?? 在哪里使用它 我在stackoverflow和许多其他网站上都看到过它的例子,但我不知道如何使用它 我必须添加引用才能使用bindable linq吗?如果是,那么它们是哪一个 由于我是一个新手,请大家帮我解决这个问题。可绑定LINQ与WPF/Silverlight(或任何依赖于可观察集合通知UI集合更改的内容)结合使用时非常有用 Bindab

我是Linq的新手,刚刚开始在项目中使用普通绑定和sql查询。。。 然后我遇到了Bindable Linq术语

有人能告诉我如何使用它和它是如何有用?? 在哪里使用它

我在stackoverflow和许多其他网站上都看到过它的例子,但我不知道如何使用它

我必须添加引用才能使用bindable linq吗?如果是,那么它们是哪一个


由于我是一个新手,请大家帮我解决这个问题。

可绑定LINQ与WPF/Silverlight(或任何依赖于
可观察集合
通知UI集合更改的内容)结合使用时非常有用

Bindable LINQ还尝试检测查询中的UI依赖项,并绑定到适当的事件,以便在UI更改时重新评估查询,而无需开发人员编写任何代码

Bindable LINQ的CodePlex页面有一个很好的解释:


看看哪个项目比Bindable LINQ更活跃。

在应用程序中,当需要根据源数据计算某些值时,通常会出现这种情况。让我给你一个简单的例子,在现实生活中,一切都可能更加复杂(bindable Linq更适用于更复杂的情况)。例如,您需要根据订单中每个产品的原始价格和折扣计算最终价格。如果订单项目(添加、删除)或折扣发生变化,我们还必须更新最终价格。在不使用bindable Linq的情况下,有两个选项可以实现这一点:

1) 每次订单项(添加、删除)或折扣更改时调用重新计算总价的方法

2) 通过计时器调用重新计算总价的方法(每5秒一次) 这些方法都有缺点

第一种方法有以下缺点:因为我们必须在代码中的许多地方调用重新计算总价的方法,所以我们可能忘记在某些地方调用重新计算总价的方法。 第二种方法有以下缺点:

1) 在UI中刷新总价时出现延迟

2) 当订单的组成和折扣没有改变时,重新计算最终价格的方法将无效,这可能会对性能产生不利影响

这两种方法都有以下缺点:每次重新计算最终价格的方法会重新计算整个计算(枚举所有订单项目),而不是考虑一个项目的单独更改。这可能会对性能产生不利影响。 使用bindable Linq,我们只需要

1) 确定如何计算最终价格

2) 使用和接口

我想向您介绍我的实现此方法的库:。使用此库,我们可以编写如下代码:

公共类顺序:INotifyPropertyChanged
{
公共ObservableCollection项{get;set;}
私人国际折扣;
公共整数折扣
{
获取=>\u折扣;
设置
{
_折扣=价值;
PropertyChanged?.Invoke(这是新的PropertyChangedEventArgs(名称(折扣));
}
}
私人计算(totalPrice);;
公共计算总价=>\u总价=\u总价??
项目。选择(i=>i.价格*i.数量)。汇总()
.使用(totalOriginalPrice=>
总原始价值
-原价总价*折扣/100);
公共事件属性更改事件处理程序属性更改;
}
公共类OrderItem:INotifyPropertyChanged
{
私人十进制价格;
公共十进制价格
{
获取=>\u价格;
设置
{
_价格=价值;
PropertyChanged?.Invoke(这是新的PropertyChangedEventArgs(name of(Price));
}
}  
私人国际单位数量;
公共整数
{
get=>\u数量;
设置
{
_价格=价值;
PropertyChanged?.Invoke(这是新的PropertyChangedEventArgs(nameof(Quantity));
}
}   
公共事件属性更改事件处理程序属性更改;

}
该项目自2008年以来从未更新过。它似乎死了。你是用它呢,还是通过谷歌快速搜索找到了信息?