如何显示组合框';s SelectedValue(如果组合框绑定到数据集)

本文关键字:组合 SelectedValue 如果 绑定 数据集 何显示 显示 | 更新日期: 2023-09-27 17:59:01

我有一个绑定到DataSetComboBox。我想在ComboBox的选择发生变化时显示所选的值。我有以下代码:

private void devCb1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    dv = new DataView(
        dt,
        "Device_ID = " + devCb1.SelectedIndex,
        "Data_ID ASC",
        DataViewRowState.CurrentRows);
    dataDg1.ItemsSource = dv;
    devCb1.DisplayMemberPath = "Content";
    MessageBox.Show(devCb1.SelectedValue.ToString());
}

但它只会给我

System.Data.DataRowView

我已经设置了DisplayMemberPath,但它仍然没有显示所选项目的内容。怎么了?

[已编辑]我还尝试了以下

devCb1.SelectedValuePath = "Content";
MessageBox.Show(devCb1.SelectedValue.ToString());

但它仍然给了我

System.Data.DataRowView

也不起作用。。

如何显示组合框';s SelectedValue(如果组合框绑定到数据集)

DataRowView没有我所看到的内容。我认为,您的SelectedValuePath应该指向Row(或者,如果当前路径正确指向ComboBoxItemContent,您只需要在该点进行强制转换),并且您仍然需要将SelectedValue作为一行强制转换为该类,从那里您可以获得它的一些内容。

设置断点,使用调试器,查看对象中的数据。

尝试SelectedValuePath访问要查看的数据

至少现在(问题提出2年后)可以访问DataRowView中的数据,只需将SelectedValue强制转换为System.data.DataRowView并访问属性Row["colName"],如下所示:

((System.Data.DataRowView)ComboBoxName.SelectedValue).Row["colName"];