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