如何将项目添加到List <t>并在ListBox中显示它们

时间:2016-11-03 15:55:40

标签: c# wpf listbox

我正在开发一个简单的银行应用程序,它应该(以某种方式)显示银行的客户。我选择了一个列表框来显示项目,但如果有更简单的方法,请告诉我。

我遇到的问题是ListBox没有显示任何内容,我认为问题在于我首先没有添加我想要添加的客户。

Soo,首先,我在我的Customer类中有这个,其中设置了每个客户的属性:

public class Customer
{
    string CustomerName;
    long IDNumber;
    List<SavingsAccount> CustomerAccounts;

    public Customer()
    {
    }

    public Customer(string _customerName, long _iDNumber, List<SavingsAccount> _customerAccounts)
    {
        this.customerName = _customerName;
        this.iDNumber = _iDNumber;
        CustomerAccounts = new List<SavingsAccount>();
    }

    public string customerName
    {
        get
        {
            return CustomerName;
        }
        set
        {                
            CustomerName = value;
        }
    }

    public long iDNumber
    {
        get
        {
            return IDNumber;
        }
        set
        {
            IDNumber = value;
        }
    }

    public List<SavingsAccount> customerAccounts
    {
        get
        {
            return CustomerAccounts;
        }
        set
        {
            CustomerAccounts = value;
        }
    }
}

在应用程序中,用户可以导航到“添加客户页面”,他们可以在两个单独的文本框中键入名称和个人ID。一个“节省”顾客的按钮触发了这个事件:

private void addCustomer_Click(object sender, RoutedEventArgs e)
    {
        long pnr = Convert.ToInt64(idTextBox.Text);

        bankLogic.AddCustomer(nameTextBox.Text, pnr).ToString();

AddCustomer方法如下所示:

public bool AddCustomer(string name, long idNumber)
    {
        foreach (Customer c in customers)
        {
            if (c.iDNumber != idNumber)
            {
                continue;
            }
            else
            {
                return false;
            }
        }
        Customer customer = new Customer();

        customer.customerName = name;
        customer.iDNumber = idNumber;
        customer.customerAccounts = null;

        customers.Add(new Customer(customer.customerName, customer.iDNumber, customer.customerAccounts));

        return true;
    }

在用户可以导航到的应用程序的另一部分中,有一个ListBox和一个按钮。该按钮触发一个应该与客户一起填充ListBox的事件。在xaml.cs文件中,事件如下所示:

private void FillButton_Click(object sender, RoutedEventArgs e)
    {
        List<Customer> myCustomers = bankLogic.GetCustomers();
        foreach (Customer c in myCustomers)
        {
            customerList.Items.Add(c.customerName);
        }
    }

bankLogic.GetCustomers();只返回与客户的列表:

public List<Customer> customers = new List<Customer>();

    public List<Customer> GetCustomers()
    {
        return customers;
    }

所以问题是:名称和IDNumber是否已添加到列表中?或者为什么它们不会显示在ListBox中?

感谢所有答案!这是我的第一次,对于这篇长篇文章感到抱歉:)

0 个答案:

没有答案