2011-05-16 54 views
0

我有一個DataGrid自動從LINQ到SQL源提供某些值。 DataGrid的標題也是自動生成的。我只想要數據網格中當前選定項目的單元格之一。如何從自動填充的DataGrid獲取項目?

var a = TestGrid.SelectedCells[0].Item;

如果我調試這個我得到包含我需要的所有值的列表:

TestGrid.SelectedCells[0].Item{ Datum = {11.05.2011 00:00:00}, ID = 3, name = "db",Status = "Ready" }<Anonymous Type>

我完全不知道如何從匿名選擇第二項(ID)類型和谷歌沒有幫助

+0

p.s.當你訪問單元格時,回到匿名對象看起來很奇怪。如果有的話,你應該得到,如果訪問一排。看到你的查詢看起來會有所幫助。 – 2011-05-16 02:00:33

回答

1

最好的選擇是創建一個類型來保存您的值並將其存儲在您的DataGrid中。如果你只用它來顯示,匿名類型可以使用。當你需要將它們用於其他任何事情時,它們並不是那麼棒。

如果你真的想堅持匿名類型,你唯一的選擇是使用反射。如果這特別是一個C#4.0+應用程序,那麼使用dynamic可以使這更容易一些。

+0

現在的問題是,我現在用以下方式獲取數據:'var query = search(foo); TestGrid.ItemsSource = query;',搜索結果如上所示。爲了方便起見,我沒有使用匿名類型,而是因爲我真的不知道如何在沒有硬編碼/迭代值/標頭的情況下將數據放入網格。 – fk2 2011-05-16 00:59:38

+0

@ fk2:這是一個WinForms應用程序嗎? WPF?網?列生成在WPF和WinForms AFAIK中是完全自動的。 – 2011-05-16 01:45:26

+0

那麼,我現在只是簡單地製作一個需要的字段數量和屬性的類型。一個地獄打字,但它的作品。謝謝你的幫助! – fk2 2011-05-16 12:08:20