将Collection类分配给列表框的项
本文关键字:列表 Collection 分配 | 更新日期: 2023-09-27 18:04:43
我相信应该有更简单的方法来做到这一点。我有一个基于Collection的类,这个类是另一个类的集合。目前,每当我的类中有一个新项时,我都会将该项分配给列表框。我似乎无法找出一种方法来分配集合类中的所有值,因为它是一个集合,到列表框的集合。什么好主意吗?由于
好的,到目前为止我所做的是在集合中使用的类中有一个tostring重写。这就是我想让列表框显示的内容。
public override string ToString()
{
return string.Format("{0} {1}: {2}", tTypev.ToString(),
Datev.ToString("MM/dd/yyyy"), Amountv.ToString("C"));
}
这是我希望列表框中的每个项目显示的内容。
class Transactions : System.Collections.CollectionBase
{
...
}
是我的collections类,包含另一个类transaction的集合。目前,我使用lstTransactions.Items.Add()、. remove、. removat等方法向列表框中添加项目,使用. add()、. remove等方法向Collection类Transactions中添加项目。但是我正在尝试减少对外部控件的依赖,并且只在几行代码中使用它们。我试着用这样的东西:
lstTransactions.DataSource = (Transaction)myTrans;
但这似乎不起作用。主要是因为我不知道DataSource取了什么属性。
我也试过:
lstTransactions.Items =
但是它告诉我items是只读的
在Windows表单:
- 你可以使用DataSource属性来绑定一个对象集合。
- DisplayMember属性为数据源对象中属性的名称。
示例代码: 在下面的示例中,输出列表框将显示2个项目:Apple和Ball。
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
EmployeeCollection data = new EmployeeCollection();
data.AddEmployee(new Employee("Apple", 25));
data.AddEmployee(new Employee("Ball", 50));
listBox1.DataSource = data;
listBox1.DisplayMember = "Name";
}
}
public class Employee
{
public Employee(string name, int age)
{
this.Name = name;
this.Age = age;
}
public int Age
{
get; private set;
}
public string Name
{
get; private set;
}
}
public class EmployeeCollection : System.Collections.CollectionBase
{
public void AddEmployee(Employee employee)
{
this.List.Add(employee);
}
}
}
在WPF :
你可以使用ListBox的ItemSource属性绑定一个集合(可以是List, Enumerable, Collections..)_完成任务
示例代码片段:
IList<string> data = new List<string>() {"A", "B"};
ListBox listBox = new ListBox();
listBox.ItemsSource = data;