【问题标题】:WPF Listbox display property binding [duplicate]WPF列表框显示属性绑定[重复]
【发布时间】: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 对象的列表。

标签: c# wpf xaml


【解决方案1】:

在列表框中设置DisplayMemberPath="DisplayName"

DisplayMemberPath

ItemTemplate

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 2010-12-27
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多