c# - 如何将 C# 7.0 元组类型值的集合绑定(bind)到 System.Windows.Forms.Listbox 并将显示成员设置为元素之一?

标签 c# .net winforms tuples c#-7.0

我有一个 System.Windows.Forms.Listbox以及我创建的元组类型值的集合。即 the new tuple type introduced in C# 7.0 .我正在尝试将集合绑定(bind)到 Listbox并设置 DisplayMember到元组中的元素之一。这是一个例子:

var l = new List<(string name, int ID)>()
{
    ("Bob", 1),
    ("Mary", 2),
    ("Beth", 3)
};

listBox1.DataSource = l;
listBox1.DisplayMember = "name";

不过,这行不通。与老款Tuple<T>你应该可以做描述的事情in this answer :

listBox1.DisplayMember = "Item1";
listBox1.ValueMember = "Item3";   // optional

那也不行。这是我在这两种情况下看到的:

enter image description here

我怎样才能做到这一点?

最佳答案

不幸的是,C#7 值元组不能用于数据绑定(bind),因为它们使用 fields ,而 Windows 窗体标准数据绑定(bind)仅适用于属性

关于c# - 如何将 C# 7.0 元组类型值的集合绑定(bind)到 System.Windows.Forms.Listbox 并将显示成员设置为元素之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47776022/

相关文章:

.net - "Transaction context in use by another session"是什么原因

.net - 将坐标变换到另一个坐标系

c# - 第二个窗体首先加载,主窗体在第一个窗体关闭之前不可见

c# - 如何在 winform 应用程序中正确使用 DBContext/EF?

c# - 群集重叠圆圈?

c# - 为什么 x = x + 100 与编译为相同 IL 的 x += 100 的处理方式不同?

c# - 消息错误 : System. InvalidCastException:指定的转换无效 10

c# - 在 C# asp.net core 2.1 中通过用户名和密码在 MQTT 服务器上验证 MQTT 客户端

c# - 何时创建属性对象?

c# - 如何在Windows应用商店应用程序关闭时保存数据?