从 selecteditem wpf datagrid 获取数据

Getting data from selecteditem wpf datagrid

我正在尝试从我的 SelectedItem 中获取此数据项。

我使用一个名为 grd 的 DataGrid。这是在普通数据网格上扩展的自定义数据网格。

但我想将值 'DATA' 放入文本框中,以便找出插入符号索引。

到目前为止我的代码:

private void Selected_TextBox_Index (Object sender, MouseButtonEventArgs e) {

      FileEditorDataGrid grd = (FileEditorDataGrid)sender;
      TextBox textBox = new TextBox();
      textBox.Text = grd.SelectedItem.ToString();
      DataRowView dataRow;
      Int32 selectedIndex;

      selectedIndex = grd.SelectedIndex;
      dataRow = grd.Items.GetItemAt(selectedIndex) as DataRowView;

      Int64 cursorPos = textBox.CaretIndex;
      if (ViewModel.TextBoxCursorCommand.CanExecute(null)) {
        ViewModel.TextBoxCursorCommand.Execute(cursorPos);

      }
    } // Selected_TextBox_Index

使用以下方法解决:

 var dataInTheItem = selectedItem.GetType().GetProperty("Data").GetValue(grd.SelectedItem);

只需将 SelectedItem 转换为您的数据类型并直接访问 属性:

 var dataInTheItem = (grd.SelectedItem as YourClass)?.Data;

无论是在可维护性和可读性方面,还是在性能方面,这都比使用反射要好。