C# 无法将对象转换为字符串

C# 无法将对象转换为字符串,c#,.net,wpf,datagrid,C#,.net,Wpf,Datagrid,我不确定这为什么行不通。我有一个datagrid,我想根据每个项目创建一个选择,将我导航到应用程序的下一部分 private void MedicationDatagrid_SelectionChanged(object sender,SelectionChangedEventArgs e) { SelectedMedication = MedicationData.RetrieveMedicationByBarcode(MedicationDatagrid.Se

我不确定这为什么行不通。我有一个datagrid,我想根据每个项目创建一个选择,将我导航到应用程序的下一部分

    private void MedicationDatagrid_SelectionChanged(object sender,SelectionChangedEventArgs e)
    {
        SelectedMedication = MedicationData.RetrieveMedicationByBarcode(MedicationDatagrid.SelectedItem, string.Empty, 0);

    }
假设selectedmediation是
字符串
,则:

SelectedMedication = MedicationData.RetrieveMedicationByBarcode(
    MedicationDatagrid.SelectedItem,
    string.Empty,
    0) as string;
SelectedMedication = MedicationData.RetrieveMedicationByBarcode(
    MedicationDatagrid.SelectedItem as string,
    string.Empty,
    0);
可以想象,这是可行的。但是,我们不知道
RetrieveMedicationByBarcode
返回了什么,因此您可能需要
覆盖该类型上的
ToString()
方法,才能按预期工作


但是,问题也有可能是
MedicalationDataGrid。选择EdItem
,该方法将
字符串作为第一个参数。如果是这样,那么:

SelectedMedication = MedicationData.RetrieveMedicationByBarcode(
    MedicationDatagrid.SelectedItem,
    string.Empty,
    0) as string;
SelectedMedication = MedicationData.RetrieveMedicationByBarcode(
    MedicationDatagrid.SelectedItem as string,
    string.Empty,
    0);

可能会解决您的问题。

MedicalationDataGrid.SelectedItem.ToString()
?MedicalationData的签名是什么。通过条形码检索MedicalationByBarcode