我已經使用LINQ拋出自己頭扎到C#和.NET 2.0,和我有調試的一些問題,也就是以下幾個問題:數據源,使組合框失敗
我有一個ComboBox控件(cmbObjects
)我想用一組使用Linq檢索的對象進行填充。我寫了一個輔助方法來填充List<T>
通用:
class ObjectProvider
{
public static List<T> Get<T>(bool includeNull) where T : class, new()
{
List<T> list = new List<T>();
LutkeDataClassesDataContext db = ConnectionManager.GetConnection();
IQueryable<T> objects = db.GetTable<T>().AsQueryable();
if (includeNull) list.Add(null);
foreach (T o in objects) list.Add(o);
return list;
}
public static List<T> Get<T>() where T : class, new()
{
return Get<T>(false);
}
}
調用帶有真或假的函數,當我驗證了結果 - 在List
確實包含正確的價值觀,傳遞true
時,它包含null
作爲第一個值,其次是其他對象。
當我分配DataSource
至然而ComboBox
,控制簡單地拒絕顯示任何項目,包括null
值(未選擇):
cmbObjects.DataSource = ObjectProvider.Get<Car>(true);
傳遞false
(或沒有參數)不工作 - 它顯示所有的對象。
有沒有辦法讓我爲第一個對象指定一個「null」值而不訴諸幻數對象(就像在DB中有一個僞造的條目來指定一個N/A值)?可以爲空的東西是理想的,但我有點失落。
此外,我已經嘗試將new T()
而不是null
添加到列表中,但只導致OutOfMemoryException
。
此外,我試過將`List`聲明爲`List>`,但編譯器不允許我這樣做。 –
2008-12-16 09:49:16
將一個Null值添加到列表中的意圖是什麼?這個列表的Combobox應該顯示爲單個項目的元素? – Gishu 2008-12-16 09:56:54