列表框中的选定项一直返回空值
Selected item in list box keeps returning null
我正在尝试 select 我的列表框中的给定数字但是当我 运行 代码时 return 为 null
我试过 .selectedvalue 我试过 .selecteditem 和 .selecteditems
全部 return 空
ID = ExpireditemInfo.GetItemText(ExpireditemInfo.SelectedItem);
ID 是一个字符串
这是我使用 dapper 的来源
loadinventory = iteminfo.GetExpireinfo(now,expirationDate);
ExpirationID.DataSource = loadinventory;
ExpirationID.DisplayMember = "Expireing_ID";
我的数据模型
public string Transaction_ID { get; set; }
public string Type_Of_Transaction { get; set; }
public string Name { get; set; }
public string Quantity { get; set; }
public string Unit { get; set; }
public string Expireing_ID
{
get
{
return $"{Transaction_ID}";
}
}
我想 select 列表框等中的数字 6 并将 selection 存储在一个字符串中,然后我将其转换为一个 int 以通过存储过程传递。 int 用于数据库的 id 列,因此在传递给数据库时它必须是 in。
是不是 6 没有被识别为字符串,如果是,我该如何 select 呢?
i am trying to select a given number from my list box but when i run the code it returns null
在看到您绑定到 ListBox
的方式后,您似乎没有设置 ValueMember
属性,这样做您可以获得一个实际的 DisplayMember
和一个 ValueMember
表示该显示对象的实际基础值。
这是我会做的,这只是一个例子:
// Holds the actual selected items value
public string ExpirationIDValue {get; private set;}
// Anytime the selected index changes, we update our property. You can
// put this on the constructor and or on load.
ExpirationID.SelectedIndexChanged += ExpirationID_SelectedIndexChanged;
// Event handler for when selection changes
private void ExpirationID_SelectedIndexChanged(object sender, EventArgs e)
{
if (sender is ListBox listBox && listBox.SelectedValue != null)
{
ExpirationIDValue = listBox.SelectedValue.ToString();
}
}
// This was for testing, just to get some data, you can ignore this
DataTable dataTable = new DataTable();
dataTable.Columns.Add(new DataColumn("Expireing_ID",typeof(string)));
dataTable.Columns.Add(new DataColumn("Expireing_ID_Display",typeof(string)));
int i = 1;
while(i < 10)
{
dataTable.Rows.Add(i.ToString(),$"Display {i}");
i++;
}
// Here you need to make sure you set these properties to your actual
// property names.
ExpirationID.DataSource = dataTable;
ExpirationID.DisplayMember = "Expireing_ID_Display";
ExpirationID.ValueMember = "Expireing_ID";
注意:您的 selectedindexchanged 事件可能会提前触发并导致异常,您可以做的是创建一个变量 bool 并在加载时将其设置为 true,然后在事件中确保它不是 true。在加载数据结束时,将其设置回 false。
希望这能解决您的问题,如果有什么不明白或需要进一步说明,请告诉我。
keycode: public string ExpirationIDValue { get;私有集; }
private void ExpirationID_SelectedIndexChanged(object sender, EventArgs e)
{
**keycode:** ExpirationIDValue =ExpirationID.GetItemText(
ExpirationID.SelectedItem);
int ID;
ID = Convert.ToInt32(ExpirationIDValue);
loadinventory = iteminfo.ExpireitemInfo(ID);
ExpireditemInfo.DataSource = loadinventory;
ExpireditemInfo.DisplayMember = "Expireing_info";
}
请注意,valuemember 不是必需的。
我正在尝试 select 我的列表框中的给定数字但是当我 运行 代码时 return 为 null
我试过 .selectedvalue 我试过 .selecteditem 和 .selecteditems 全部 return 空
ID = ExpireditemInfo.GetItemText(ExpireditemInfo.SelectedItem);
ID 是一个字符串
这是我使用 dapper 的来源
loadinventory = iteminfo.GetExpireinfo(now,expirationDate);
ExpirationID.DataSource = loadinventory;
ExpirationID.DisplayMember = "Expireing_ID";
我的数据模型
public string Transaction_ID { get; set; }
public string Type_Of_Transaction { get; set; }
public string Name { get; set; }
public string Quantity { get; set; }
public string Unit { get; set; }
public string Expireing_ID
{
get
{
return $"{Transaction_ID}";
}
}
我想 select 列表框等中的数字 6 并将 selection 存储在一个字符串中,然后我将其转换为一个 int 以通过存储过程传递。 int 用于数据库的 id 列,因此在传递给数据库时它必须是 in。
是不是 6 没有被识别为字符串,如果是,我该如何 select 呢?
i am trying to select a given number from my list box but when i run the code it returns null
在看到您绑定到 ListBox
的方式后,您似乎没有设置 ValueMember
属性,这样做您可以获得一个实际的 DisplayMember
和一个 ValueMember
表示该显示对象的实际基础值。
这是我会做的,这只是一个例子:
// Holds the actual selected items value
public string ExpirationIDValue {get; private set;}
// Anytime the selected index changes, we update our property. You can
// put this on the constructor and or on load.
ExpirationID.SelectedIndexChanged += ExpirationID_SelectedIndexChanged;
// Event handler for when selection changes
private void ExpirationID_SelectedIndexChanged(object sender, EventArgs e)
{
if (sender is ListBox listBox && listBox.SelectedValue != null)
{
ExpirationIDValue = listBox.SelectedValue.ToString();
}
}
// This was for testing, just to get some data, you can ignore this
DataTable dataTable = new DataTable();
dataTable.Columns.Add(new DataColumn("Expireing_ID",typeof(string)));
dataTable.Columns.Add(new DataColumn("Expireing_ID_Display",typeof(string)));
int i = 1;
while(i < 10)
{
dataTable.Rows.Add(i.ToString(),$"Display {i}");
i++;
}
// Here you need to make sure you set these properties to your actual
// property names.
ExpirationID.DataSource = dataTable;
ExpirationID.DisplayMember = "Expireing_ID_Display";
ExpirationID.ValueMember = "Expireing_ID";
注意:您的 selectedindexchanged 事件可能会提前触发并导致异常,您可以做的是创建一个变量 bool 并在加载时将其设置为 true,然后在事件中确保它不是 true。在加载数据结束时,将其设置回 false。
希望这能解决您的问题,如果有什么不明白或需要进一步说明,请告诉我。
keycode: public string ExpirationIDValue { get;私有集; }
private void ExpirationID_SelectedIndexChanged(object sender, EventArgs e)
{
**keycode:** ExpirationIDValue =ExpirationID.GetItemText(
ExpirationID.SelectedItem);
int ID;
ID = Convert.ToInt32(ExpirationIDValue);
loadinventory = iteminfo.ExpireitemInfo(ID);
ExpireditemInfo.DataSource = loadinventory;
ExpireditemInfo.DisplayMember = "Expireing_info";
}
请注意,valuemember 不是必需的。