谓词来压缩两个集合并用作绑定源

时间:2011-05-09 21:35:13

标签: wpf collections binding predicate

我有两个集合,ObservableCollection<Lap>ObservableCollection<Racer> Lap,其中Racer保存赛车的圈数据和racerId,你猜它是赛车手的数据。两个对象都知道Zip

有没有一种方法可以让我使用谓词作为DataGrid - func将这两个集合压缩在一起?我想要这样做的原因是绑定它们laps.Zip(participants, (lap, racer) => lap.EnrollmentId == racer.EnrollmentId);

我见过this,但看不清楚如何将它与谓词一起使用。

我想到了:

{{1}}

但是我如何将其映射到DataGridColumns?

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找Join,因为您确实希望根据匹配的ID合并两者的属性。要使Zip()起作用,两个集合必须在相同的匹配顺序中具有相同数量的条目。

var results = from racer in participants
              join l in laps
              on racer.EnrollmentId equals l.EnrollmentId
              select new 
              {
                //select the properties you are interested in here
                //or just use both:
                Racer = racer, 
                Lap = l
              }