是否可以仅将列表框数据源设置为 List<Tuple<string, string, int>> Item1?
Is it possible to set listbox datasource to List<Tuple<string, string, int>> Item1 only?
我有
public static class GlobalVariables
{
public static List<Tuple<string, string, int>> PopFile;
}
我正在尝试使用 PopFile 作为列表框的数据源
listBox1.DataSource = GlobalVariables.PopFile;
问题是它显然将 ([string], [string], [int]) 添加到列表框,但我只想添加元组的第一项。这可能吗?
我可以用
foreach (Tuple<string, string, int> i in GlobalVariables.PopFile)
{
listBox1.Items.Add(i.Item1);
}
但我更喜欢 .DataSource。
最后,您无法真正避免循环,或者从您的元组对象中单独添加数据,或者创建一个新对象绑定到列表框。
Listbox 根本没有输入参数来接收元组对象,除非您自己扩展 Listbox 对象以便能够适当地处理它,但即使那样您仍然必须执行类似于上面循环的操作.
listBox1.DataSource = GlobalVariables.PopFile;
listBox1.DisplayMember = "Item1";
listBox1.ValueMember = "Item3"; // optional
https://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.datasource
LINQ 可能会派上用场...
listBox1.DataSource = GlobalVariables.PopFile.Select(t => t.Item1).ToList()
我有
public static class GlobalVariables
{
public static List<Tuple<string, string, int>> PopFile;
}
我正在尝试使用 PopFile 作为列表框的数据源
listBox1.DataSource = GlobalVariables.PopFile;
问题是它显然将 ([string], [string], [int]) 添加到列表框,但我只想添加元组的第一项。这可能吗?
我可以用
foreach (Tuple<string, string, int> i in GlobalVariables.PopFile)
{
listBox1.Items.Add(i.Item1);
}
但我更喜欢 .DataSource。
最后,您无法真正避免循环,或者从您的元组对象中单独添加数据,或者创建一个新对象绑定到列表框。
Listbox 根本没有输入参数来接收元组对象,除非您自己扩展 Listbox 对象以便能够适当地处理它,但即使那样您仍然必须执行类似于上面循环的操作.
listBox1.DataSource = GlobalVariables.PopFile;
listBox1.DisplayMember = "Item1";
listBox1.ValueMember = "Item3"; // optional
https://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.datasource
LINQ 可能会派上用场...
listBox1.DataSource = GlobalVariables.PopFile.Select(t => t.Item1).ToList()