在 foreach 中显示 listbox.items

Display listbox.items in foreach

class SymbolClass
{
    public string Symbol{ get; set; }

    public SymbolClass(string symbol)
    {
        Symbol = symbol;
    }
}


public static IEnumerable<SymbolClass> ReadCsv(string fileName)
{
    string[] lines = File.ReadAllLines(System.IO.Path.ChangeExtension(fileName, ".csv"));

    return lines.Select(line =>
        {
            string[] data = line.Split(';');

            return new SymbolClass(data[0]);
        });
}

创建 wpf window:

ListBox.ItemsSource = SymbolClass.ReadCsv("example");

和XAML

<ListBox x:Name="ListBox" DisplayMemberPath="Symbol">

现在我想在这个列表框中开始 foreach

foreach (ListBoxItem item in ListBox.Items)
{
    MessageBox.Show(item);
}

但我没看到

DisplayMemberPath="Symbol"

我只看到

Namespace.SymbolClass

但是如果我设置突破,我会看到 SymbolClass 获得了我想要显示的属性。

如何显示此 DisplayMemberPath="Symbol"

根据您的编辑,我建议您真正想要的代码是这样的:

foreach (Namespace.ClassName item in ListBox.Items)
{
    Message.Box(item.Symbol);
}

C# 将为您生成代码以转换为您指定的类型。所以剩下的就是让你展示你感兴趣的属性。