在foreach中显示listbox.items

时间:2015-04-16 00:36:26

标签: c# wpf foreach listbox

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窗口:

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"

1 个答案:

答案 0 :(得分:1)

鉴于您的编辑,我建议您在代码中真正想要的是:

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

C#将生成代码供您投射到您指定的类型。所以剩下的就是让你展示你感兴趣的房产。