2012-02-28 122 views
2

我需要關於WPF DataGrid控件和List<int?>類型的基礎對象之間的最佳中間層的建議。很明顯,我不能直接連接這兩個,因爲DataGrid想要綁定到具有get/set屬性的對象集合,並且我已經遇到了DataGrid無法找到可空對象的「Value」屬性的問題列綁定源。DataGrid綁定到列表<int?>

原始數據源必須保留爲List<int?>,我試圖利用DataGrid爲您提供的自動添加/刪除/編輯功能,以便雙向數據綁定持久保存到原始List<int?>源。

感謝您的任何建議。

+0

發佈您的代碼。你很可能需要使用轉換器來處理null。 – Paparazzi 2012-02-28 01:50:56

+0

我希望在編碼之前先得到一些好的可靠想法。我與實驗代碼有關的主要問題是轉換器永遠不會被調用,因爲DataGrid無法正確綁定到int類型的集合? (類System.Nullable。)我相信int?正在裝箱/拆箱到真正的int值時綁定嘗試,然後在一個int值「屬性?已經不存在了,我只剩下原始的int32對象。 – SoConfused 2012-02-28 19:01:29

回答

2

嗯我相信你在C#中編程嗎?

好,以連接數據網格爲Int最簡單的方式是

聲明類或數據網格(可變,函數或一些)

List<int> int_Data; 

int_Data = new List<int>(); 
int_Data.Add(DataGrid); 

//Now, declare the DataGridColumn or Row and call this... 

BindingList<Type> type = new BindingList<Type>(); 

type.Add(int_Data); 

它的一個簡單的例子,有錯誤抱歉)

再見!

+0

問題是int嗎?可以爲空 – Paparazzi 2012-03-01 15:55:37

+0

null int?爲了什麼? – Warkanlock 2012-03-01 16:48:32

+0

因爲這是個問題。詢問SoConfused。 – Paparazzi 2012-03-01 22:22:31

0

然後發佈失敗的實驗性代碼。

從一個TextBox和一個轉換器開始,然後使用您在DataGrid上學習的內容。什麼來自一個空的TextBox不是空的,而是一個空的字符串,所以當你試圖將空字符串直接綁定到Int?你會得到一個轉換錯誤。您需要使用轉換器將空字符串設置爲null,將null設置爲空字符串。