0

认为:

<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 中对它们进行分组?

4

1 回答 1

2

您可以创建一个新属性并使用 Linq 来“扁平化”您的集合,而不是绑定到制造商集合:

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

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

于 2012-04-09T16:17:06.057 回答