BindableLinq集合嵌套

时间:2009-06-28 07:19:48

标签: .net linq bindable-linq

我想知道是否有办法在bindable linq中执行此操作:

var LeftItems = AllItems.Where(p => !RightItems.Contains(p)));

我尝试过自由使用AsBindable(),但它对我不起作用..

var LeftItems = AllItems.AsBindable().Where(p => !RightItems.AsBindable.Contains(p)));

如果在BindableLINQ中不支持这种方法,是否有一个巧妙的解决方法我没有看到或是否有其他类似的软件包支持它?

3 个答案:

答案 0 :(得分:0)

.Where()方法是最后一个运行的方法,因此.Where()扩展方法的结果类型是leftItems将具有的类型。如果你想把结果作为可绑定的,我认为你应该这样做:

var leftItems = AllItems.Where(p => !RightItems.Contains(p)).AsBindable();

答案 1 :(得分:0)

我认为您正在寻找Except方法。

var LeftItems = AllItems.Except(RightItems);

不确定是否在可绑定的linq中实现。

否则你应该尝试Obtics

答案 2 :(得分:0)

尝试使用我的ObservableComputations库。使用该库:

var LeftItems = AllItems.Filtering(p => !RightItems.ContainsComputing(p).Value));

要使上述代码能够正常工作,AllItems和RightItems应该实现INotifyCollectionChanged(ObservableCollection)/