【发布时间】:2013-09-01 22:48:55
【问题描述】:
我正在尝试从 DataGrid 的 wpf 中的选定项目中获取行的特定列。
DataGrid 的名称是Datagrid_Newsale。
当它被选中时,我会收到整行的警报,所以我尝试映射它的列。
说如果行是-
{ ID = 3, CustomerName = xyz, SaleDate = 05.08.2013 00:00:00, TotalAmount = 10 }
然后它的列CustomerName=xyz将显示在文本框中。
获取行-
var copyitem = Datagrid_NewSale.SelectedItem;
if (copyitem == null)
{
MessageBox.Show("Please select values from list");
}
if (copyitem != null)
{
MessageBox.Show(copyitem.ToString());
}
为了让 customerName 进入文本框,我尝试创建一个新的模型实例-
public class CustomerDetailes
{
public string CustomerName { get; set; }
}
以及来自客户表的数据库中的值-
public void viewcustomername()
{
List<CustomerDetailes> ilist = null;
ilist = (from order in db.Customer
select new CustomerDetailes
{
CustomerName= order.CustomerName
}).ToList();
txtCustumer.Text = ilist.ToString();
}
所以再试一次-
CustomerDetailes copyitem = (CustomerDetailes)Datagrid_NewSale.SelectedItem;
if (copyitem == null)
{
MessageBox.Show("Please select values from list");
}
if (copyitem != null)
{
MessageBox.Show(copyitem.ToString());
}
txtCustomer.text=copyitem.CustomerName; //CustomerName into a textbox
但它在 copyitem 中引用了 null。
如何从整行中获取特定列。
【问题讨论】:
-
@nit,是的,得到整行,正如它所描述的那样。
-
@nit,No..,第一次尝试不使用模型
CustomerDetails;它显示整行。但是当我使用模型时,它就会为空。 -
对不起,我不明白。您是否将 DataGrid 的 itemsSource 设置为 CustomerDetails 集合?
-
@nit,不,我不知道,也许你想对此发表答案。