从wpf中检索gridview的选定行中的值

时间:2013-06-07 12:39:47

标签: c# .net wpf visual-studio-2010

我是WPF的新手。

我正在尝试在尊重的文本框中退出所选gridview行的值。

在Windows应用程序中,我习惯这样做:

txtPartyCode=gv.SelectedRows[0].Cells[1].Value.ToString();

但我很困惑,如何用WPF做到这一点?

我试过了:

txtPartyCode.Text=gvCust.SelectedItem[0]

但是,红色工具提示出现在代码下方:can not apply index with [] to an expression of type object.

请帮帮我。如何用WPF做到这一点?

3 个答案:

答案 0 :(得分:4)

这里我很困惑你的数据类型是什么。您要传递给datagrid的ItemsSource属性。

如果您是usnig DataTable并将其传递给datagrid,那么以下代码将适合您。

void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {                   
            DataRowView rowview = dataGrid1.SelectedItem as DataRowView;
            if (rowview != null)
            {
             textbox1.Text=  rowview.Row.ItemArray[0].ToString();
            }            
        }

如果您使用Typed对象作为DataGrid的itemsSource属性,例如Employees列表。然后在这里你可以做什么。

 Employee emp  = dataGrid1.SelectedItem as Employee
if(emp !=null)
{
textBox1.Text =  emp.Name;
}

答案 1 :(得分:1)

 private void YourGridName_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
        {               
          string fc = null;                   
          foreach (var item in e.AddedCells)
           {                        
            fc =((System.Data.DataRowView(item.Item)).Row.ItemArray[0].ToString();
           }
         }

答案 2 :(得分:0)

您可以尝试为DataGrid SelectionChanged事件添加处理程序,如下所示:

private void dataGrid1_SelectionChanged(object sender, RoutedEventArgs e)
{
       DataRowView rowview = gv.SelectedItem as DataRowView;
       string textNeeded = rowview.Row[0].ToString();
}