【发布时间】:2016-12-19 12:37:04
【问题描述】:
我有一个 WPF ListBox 如下:
<ListBox x:Name="myListBox" ItemsSource="{Binding}" Visibility="Visible" Width="Auto" SelectionMode="Single" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinWidth="150">
</ListBox>
private ObservableCollection<MyClass> _myCollection;
private ListBox _listBox;
protected virtual void GetControls()
{
object value;
if ((value = GetTemplateChild("myListBox")) != null)
{
_listBox = value as ListBox;
if (_listBox != null)
{
if (_listBox.ItemsSource == null)
_listBox.ItemsSource = _myCollection;
}
}
}
private void LoadItems()
{
List<MyClass> items = await GetAllItemsForDisplay();
_myCollection.AddRange(verbs.AsParallel().OrderBy(v => v?.DisplayName));
}
这会导致列表框中列出所有项目,但显示文本为 My.NameSpace.MyCLass。事实上,我想显示 MyClass 的 DisplayName 属性。
我该怎么做?如何将 Display 的值设置为等于 MyClass.DisplayName
【问题讨论】:
-
你能告诉我们
GetAllItemsForDisplay()吗? -
看看
DisplayMemberPath -
它所做的只是获取 MyClass 对象的列表。