[英]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.