0

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 を参照しています。

行全体から特定の列を取得するにはどうすればよいですか。

4

4 に答える 4

0

選択イベントからグリッドにアクセスできる場合は、次のようにして列を指定する必要があります ((DataGrid)sender).CurrentCell.Column.Header

列名から表示したいオブジェクトのプロパティへのマッピングを使用します

于 2013-08-29T15:27:47.467 に答える