繁体   English   中英

C#和Combobox无法加载列表的问题

[英]Trouble with C# and Combobox not loading list

我正在使用组合框构建列表,当从组合列表中选择客户端时,它将加载特定的URL。 问题是列表为空。
下面是代码,但是我看不到我所缺少的内容,但这可能是简单的疏忽,因为这是我第一次构建这样的组合框。

public partial class Form1 : Form
{
    List<MyClient> clients;
    public Form1()
    {
        InitializeComponent();
        clients = new List<MyClient>();
        clients.Add(new MyClient { ClientName = "Client 1", UrlAddress = @"http://www.google.com" });
        BindBigClientsList();
    }

    private void BindBigClientsList()
    {
        BigClientsList.DataSource = clients;
        BigClientsList.DisplayMember = "ClientName";
        BigClientsList.ValueMember = "UrlAddress";
    }

    private void BigClientsList_SelectedIndexChanged(object sender, EventArgs e)
    {
        MyClient c = BigClientsList.SelectedItem as MyClient;
        if (c != null)
        {
            string url = c.ClientName;
            Process.Start(url);
        }
    }
}
class MyClient
{
    public string ClientName { get; set; }
    public string UrlAddress { get; set; }
}

您错过了最后一行: DataBind

private void BindBigClientsList()
{
    BigClientsList.DataSource = ClientSize;
    BigClientsList.DisplayMember = "ClientName";
    BigClientsList.ValueMember = "UrlAddress";
    BigClientsList.DataBind;
}

您的构造函数应如下所示

public Form1() 
    { 
        InitializeComponent(); 
        List<MyClient> clients = new List<MyClient>(); 
        clients.Add(new MyClient { ClientName = "Client 1", UrlAddress = @"http://www.google.com" });
        foreach(MyClient client in clients)
        {
            BigClients.Items.Add(client);
        } 
    }

这增加了两件事:

  • 将对象添加到ComboBox。 否则,该项目应如何出现在ComboBox中?
  • 将代码放在InitializeComponent()语句之后。 否则,当您尝试将MyClient对象添加到ComboBox时,它将抛出NullReferenceException。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM