簡體   English   中英

設置SelectedValue后,C#列表框值為空

[英]C# Listbox Value is Null After Setting SelectedValue

我已經基於數據庫表創建了一個列表框,其中該列表框的DisplayMember項是通過字符串串聯創建的,而ValueMember項則表示該表中的bigInt PK。 列表框綁定到“文本/值”對象,如下所示。

List<ComboSearchItems> csi = new List<ComboSearchItems>();
     foreach(var i in q)
     {
          ComboSearchItems ci = new ComboSearchItems(String.Concat(i.Id, " - ", i.Name, " - ", i.CompanyName), i.Id);
          csi.Add(ci);
     }

     lstCompany.DataSource = csi;
     lstCompany.DisplayMember = "Text";
     lstCompany.ValueMember = "Value";
     lstCompany.SelectedIndex = 0;
     lstCompany.Refresh();

public class ComboSearchItems
{
    public string Text { get; set; }
    public Int64 Value { get; set; }

    //Constructor
    public ComboSearchItems(string t, Int64 v)
    {
        Text = t;
        Value = v;
    }
}

列表框已填充並正確顯示,但是當我嘗試通過列表框的SelectedValue下面的代碼設置SelectedValue屬性時,將其更改為null。

 lstCompany.SelectedValue = 16844;

當設置其值為整數的列表框的SelectedValue時,新值必須為相同的整數類型。 嘗試在不顯式發送Int64類型的情況下設置Int64值將導致無提示失敗,從而導致列表框的SelectedValue設置為null。

以下示例將設置SelectedValue

 lstCompany.SelectedValue = Convert.ToInt64(4251);

 lstCompany.SelectedValue = 4251L;

以下代碼將自動失敗,並將列表框的SelectedValue設置為null

 lstCompany.SelectedValue = 4251;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM