如果你的代码仍然报错,可能是因为 `searchTextbox12` 的数据源类型不是 `DataTable`。在这种情况下,你需要根据实际情况修改代码。
如果 `searchTextbox12` 的数据源类型是一个集合(如 `List`),你可以使用以下方式来获取选定的行:
```csharp
var selectedRow = searchTextbox12.SelectedItem as YourItemType;
if (selectedRow != null)
{
string id = selectedRow.ItemName; // 假设你的类中有一个名为 ItemName 的属性
string code = selectedRow.CategoryCode; // 假设你的类中有一个名为 CategoryCode 的属性
materialInfo_Grid_Add1.MaterialStandard_ID = id;
}
```
这里假设你的类名为 `YourItemType`,并且该类中包含名为 `ItemName` 和 `CategoryCode` 的属性。我们首先从 `searchTextbox12.SelectedItem` 属性中获取选定的行,并将其转换为 `YourItemType` 类型。如果选定的行不为空,我们就可以从中获取所需的数据,并将其赋值给 `materialInfo_Grid_Add1.MaterialStandard_ID` 属性。
请注意,在使用自定义类型获取数据时,你需要确保属性名和数据类型都正确。如果属性名不正确或者数据类型不匹配,可能会导致运行时错误。