【发布时间】:2011-09-19 21:12:28
【问题描述】:
我正在使用listBox.ItemsSource = e.Result.Persons,这是一个人的集合。当我希望它显示每个人对象的名字时,列表框会显示实际的对象名称。我该怎么做?
【问题讨论】:
标签: silverlight listbox itemssource
我正在使用listBox.ItemsSource = e.Result.Persons,这是一个人的集合。当我希望它显示每个人对象的名字时,列表框会显示实际的对象名称。我该怎么做?
【问题讨论】:
标签: silverlight listbox itemssource
使用列表框 ItemTemplate。 像这样的。
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding FirstName}"/>
</ListBox.ItemTemplate>
</DataTemplate>
</ListBox>
【讨论】:
除了其他响应指定的绑定方法外,你可以简单的绑定如下:
listBox.ItemsSource = e.Result.Persons.Select(d => new { FirstName });
【讨论】:
或者使用专用的"DisplayMemberPath" property,它可以轻松完成您想要的操作,没有任何副作用(也没有额外的标记):
<ListBox DisplayMemberPath="FirstName" />
对于更复杂的项目表示,使用模板(见下文)。
【讨论】:
您可以覆盖 Persons 对象的 ToString() 方法,以便显示此人的名字。
【讨论】: