如何数据绑定多个集合层?

时间:2012-04-09 16:12:32

标签: .net wpf windows-phone-7 data-binding wpftoolkit

假设:

<manufacturer name="A">
  <phone>1</phone>
  <phone>2</phone>
</manufacturer>
<manufacturer name="B">
  <phone>3</phone>
  <phone>4</phone>
</manufacturer>

是否有一种将数据绑定到ItemsSource的简洁方法,以便将所有手机显示为1,2,3,4?如果我只是使用Expression Blend生成它,它会给出

DataContext="{Binding manufacturerCollection[0].phoneCollection}"

只提供1,2。更好的是,有没有办法在WP7 Silverlight Toolkit的ListPicker中对它们进行分组?

1 个答案:

答案 0 :(得分:2)

您可以创建新属性并使用Linq“展平”您的集合,而不是绑定到manufacturerCollection:

public IEnumerable<Phone> Phones { get { return manufacturerCollection.SelectMany(m => m.phoneCollection); }}

(用phoneCollection中存储的对象类型替换'Phone')