- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建包含键值对的列表框。我从类中获得的那些数据是从 getter 提供的。
类:
public class myClass
{
private int key;
private string value;
public myClass() { }
public int GetKey()
{
return this.key;
}
public int GetValue()
{
return this.value;
}
}
程序:
private List<myClass> myList;
public void Something()
{
myList = new myList<myClass>();
// code for fill myList
this.myListBox.DataSource = myList;
this.myListBox.DisplayMember = ??; // wanted something like myList.Items.GetValue()
this.myListBox.ValueMember = ??; // wanted something like myList.Items.GetKey()
this.myListBox.DataBind();
}
类似这个话题[ Cannot do key-value in listbox in C# ] 但我需要使用从方法返回值的类。
是否可以做一些简单的事情,或者我最好完全重新设计我的思路(和这个解决方案)?
谢谢指教!
最佳答案
DisplayMember
和 ValueMember
属性需要使用属性的名称(作为字符串)。你不能使用方法。所以你有两个选择。更改您的类以返回属性或创建一个从 myClass 派生的类,您可以在其中添加两个缺少的属性
public class myClass2 : myClass
{
public myClass2() { }
public int MyKey
{
get{ return base.GetKey();}
set{ base.SetKey(value);}
}
public string MyValue
{
get{return base.GetValue();}
set{base.SetValue(value);}
}
}
现在您已经进行了这些更改,您可以使用新类更改您的列表(但修复初始化)
// Here you declare a list of myClass elements
private List<myClass2> myList;
public void Something()
{
// Here you initialize a list of myClass elements
myList = new List<myClass2>();
// code for fill myList
myList.Add(new myClass2() {MyKey = 1, MyValue = "Test"});
myListBox.DataSource = myList;
myListBox.DisplayMember = "MyKey"; // Just set the correct name of the properties
myListBox.ValueMember = "MyValue";
this.myListBox.DataBind();
}
关于C#:如何从类方法绑定(bind)到 ListBox DisplayMember 和 ValueMember 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25103408/
我阅读了很多关于 Winforms ComboBox ValueMember 属性主题的有用帖子,但没有一篇能回答我的具体问题。首先,我将描述一个工作正常的简单示例,然后我将描述我想如何改变它,并询问
我的 ComboBox 控件显示 publishername 和 authorlastname 并存储 publisherid 和 authorid。 当我运行我的代码时,它会显示 publisher
我有一个使用 Windows 窗体绑定(bind)到复选框列表的 linq 查询 var webresourcesFromCRM = from w in orgSvcContext.CreateQue
我有一个 combobox ,我想在这里显示一个字符串作为 DisplayMember并且有一个Dictionary作为ValueMember .我有一个包含带有字符串和字典的对象的列表,这个列表我用
我的选中列表框有问题。 public void GetFolder() { var dict = new Dictionary(); foreach (Fo
如何设置这些值?我有一个数据表,其中包含我想在组合框中设置的所有数据,但我找不到如何设置它。 我试过了 ComboBox1.DataSource = dataTable; ComboBox1.Valu
当我设置 DataSource在控件上并想使用 .ToString()作为DisplayMember , 我需要设置 DisplayMember最后一个或 ValueMember将覆盖它。 MSDN
我正在尝试使用 C# 从 ListBox 中获取所有选定的项目 ValueMember。 例如: 我有一个这样的列表: ID | Name and Lastname -----------------
我有一个小问题。 DataGridViewComboBoxColumn显示来自 ValueMember 的值而不是来自 DisplayMember .网格工作正常,当我从该列中选择某些内容时,我看到
我有一个具有以下结构的组合框。此外,我从另一个来源获取了一个 fld_id,我需要根据该 ID 在 ComboBox 中选择相应的项目。我该怎么做? comboBoxCustomers.DataSou
我有两个具有相同 DisplayMember 和不同 ValueMember 的项目,我想以编程方式选择这两个项目之一,我该怎么做? 项目: 123 -> Peter Pan 234 -> John
我有一个组合框,显示我国不同的市(这些市属于特定省)。由于存在具有相同名称的市政当局,我将“MunicipalityName”(我数据库中“MUNICIPALITY”表中的表列)绑定(bind)到组合
我希望在 ComboBox 上有一个 DisplayMember 和一个 ValueMember,它们只有 4 个值,并且它们始终相同。 是否可以不使用DataTable作为DataSource并且不
我有一个带有 Id、Name 列的组合框。我已将这些值添加到带有数据表的组合框中: DataTable.Rows.Add(1, "Name1"); DataTable.
我正在向 WinForms 应用程序添加一个组合框,我遇到了 DisplayMember 和 ValueMember 属性。它们的功能正是我的应用程序所需要的,但我不确定我是否喜欢它们的工作方式。 c
这是在 Windows 窗体、.NET 4.0 上。 public class Person { public int Id { get; set; } public string N
我有一个可编辑的 ComboBox,它对 Text 属性进行了验证,以确保手动输入的信息有效。 编辑:我想要做的就是使用选择的 ValueMember 而不是 DisplayMember 填充 .Te
我在尝试获取我设置的 ValueMember 值时遇到了一些问题。我正在尝试使用组合框来选择 Windows 窗体报告。我可以得到名称,但不能得到 RptValue。这是我的代码: p
我正在尝试创建包含键值对的列表框。我从类中获得的那些数据是从 getter 提供的。 类: public class myClass { private int key; privat
我正在尝试创建包含键值对的列表框。我从类中获得的那些数据是从 getter 提供的。 类: public class myClass { private int key; privat
我是一名优秀的程序员,十分优秀!