在 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# 将为您生成代码以转换为您指定的类型。所以剩下的就是让你展示你感兴趣的属性。
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# 将为您生成代码以转换为您指定的类型。所以剩下的就是让你展示你感兴趣的属性。