0
我試圖填充從數據庫返回的DataTable的下拉列表。一旦選中,我將使用BatchNumber(int)運行查詢,但我希望組合框顯示LastRun(格式化的DateTime)。我已經驗證了列名匹配。WinForms組合框顯示ValueMember而不是DisplayMember
出於某種原因,正在顯示BatchNumber。打印出cboLastRunTime.DisplayMember時,即使已將其設置爲LastRun,BatchNumber也會顯示在那裏。我已經閱讀了很多關於這個主題的文章,並且玩過數據綁定和其他技術;沒有任何工作。我如何顯示DisplayMember?
我很新的Windows窗體。如果您需要更多信息,請告訴我。
private void GetLastRunTimes()
{
_dataTable = _process.GetLastRunTimes(); //retrieves data from DB
cboxLastRunTimes.DataSource = _dataTable;
cboxLastRunTimes.DisplayMember = "LastRun";
cboxLastRunTimes.ValueMember = "BatchNumber";
}
編輯:這裏是我使用的值從ComboBox:
private void btnGetPastResults_Click(object sender, EventArgs e)
{
try
{
int resultId = Convert.ToInt32(cboxLastRunTimes.SelectedValue);
GetPreviousReconciliationInfo(resultId);
if (_resultsDT != null)
LoadDataGrid();
//other UI changes
}
catch (Exception ex)
{
//error handling
}
}
private void GetPreviousReconciliationInfo(int batchNumber)
{
_resultsDT = _process.Reconcile_GetPreviousReconciliationInfo(batchNumber); //retrieves data from DB
}
您是否在使用組合框SelectionChanged事件來獲取值或其他方法?您需要向我們展示您用於檢索組合框數據的代碼。 – jpaugh78
交換線的順序,這是一個已知的問題。 – DonBoitnott
@ jpaugh78 - 我沒有包括處理程序,但是我只是想要在選擇更改時觸發事件而需要它。這個方法在Load表單上被調用。下拉菜單中的選項從一開始就顯示不正確,而且只有在單擊了輔助按鈕後纔會觸發事件。 – Abigail