将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是只读的

将Collection类分配给列表框的项

在Windows表单:

    你可以使用DataSource属性来绑定一个对象集合。
  1. 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;