在我的WPF應用程序中,我有一個包含DataGrid的窗口(所有代碼)。有我的DataGrid綁定:如何獲取DataGrid單元格的字段
using (var db = new CompanyEntities())
{
var stocks = db.Stock;
var query = from s in stocks
select new { s.Id_Product, s.Quantity };
dataGrid.ItemsSource = query.ToList();
}
我想要讀取在DataGrid中選擇的單元格。我試着用DataGrid.SelectedItem來讀取它,但是爲了得到這個項目,我必須將它轉換爲某種類型。我無法使用Stock類,因爲我的DataGrid單元格包含Stock的3個字段中的2個。所以我做了另一個類來表示DataGrid單元格:
class TableItem
{
public int Id_Product;
public int? Quantity;
}
並試圖投它是這樣的:
TableItem x = (TableItem)dataGrid.SelectedItem;
但我從類型得到InvalidCastException的:
'<> f__AnonymousType0
2[System.Int32,System.Nullable
1 [System.Int32]]'
到我的TableItem類型。
那麼我應該如何得到我的dataGrid的選定單元格?
我的外觀圖釋:
在我CompanyEntites構造我設置:
this.Configuration.ProxyCreationEnabled = false;
,現在我可以施展Stock s = (Stock)dataGrid.SelectedItem;
沒有例外,切換ProxyCreation關閉之前,我的SelectedItem是DynamicProxy.Stock ~~類型。
添加斷點,使用觀察窗口。看看'dataGrid.SelectedItem'實際是什麼類型。把它投射到那。 –
它的值是{Id_Product = 3,Quantity = 10} 和類型:\t <匿名類型> – Jacoslaw
糟糕,應該已經看到了。 –