2011-05-25 49 views
0

我想知道是否绑定Silverlight中的控件,linq表达式与绑定到可观察集合相同?我有一个树形视图,截至目前我绑定到一个可观察的集合。然后我了解了有关linq表达式,似乎通过使用linq查询,我可以完全摆脱这个集合,并使用查询生成它,但我不知道如果从linq查询生成的结果将得到更新在飞行,并通过UI的更新?绑定到linq查询,silverlight 4

例如我有一个员工名单,我创建了一个可观察的“作为经理的员工”集合,并用它作为树的项目源。无论何时添加新员工,如果他们是经理,他们都会被添加到经理集合中,并且树会更新。现在使用linq我可以生成一个员工名单,这些员工是使用查询的经理,但是我没有办法测试当管理员的新员工被添加到员工集合中时这也会得到更新。

class EmployeeCollection : IEnumerable<Employee>, INotifyCollectionChanged 
{ 
private List<Employee> empColl; 
// private ObservableCollection<Employee> managerCollection; Not needed now 
} 

managerTreeView.ItemsSource = from Employee in EmployeeCollection where Employee.isManager select Employee; 

感谢

回答

1

LINQ结果是不带电的集合,因此更改源(LINQ查询)将不会触发查询结果重新评估。因此,你不会有你想要的行为。

希望这会有所帮助:)

+0

谢谢。我将它改回到使用可观察集合。 – user642770 2011-05-26 10:15:56