3

我是 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 做到这一点?

4

3 回答 3

4

在这里我很困惑你的数据类型是什么。您将其传递给数据网格的 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();
            }            
        }

如果您使用类型对象作为 DataGrid 的 itemsSource 属性,例如员工列表。那么在这里你可以做什么。

 Employee emp  = dataGrid1.SelectedItem as Employee
if(emp !=null)
{
textBox1.Text =  emp.Name;
}
于 2013-06-07T14:04:05.523 回答
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();
           }
         }
于 2013-06-07T12:45:06.460 回答
0

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

private void dataGrid1_SelectionChanged(object sender, RoutedEventArgs e)
{
       DataRowView rowview = gv.SelectedItem as DataRowView;
       string textNeeded = rowview.Row[0].ToString();
}
于 2017-02-22T07:11:44.993 回答