如何显示组合框';s SelectedValue(如果组合框绑定到数据集)
本文关键字:组合 SelectedValue 如果 绑定 数据集 何显示 显示 | 更新日期: 2023-09-27 17:59:01
我有一个绑定到DataSet
的ComboBox
。我想在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
也不起作用。。
DataRowView
没有我所看到的内容。我认为,您的SelectedValuePath
应该指向Row
(或者,如果当前路径正确指向ComboBoxItem
的Content
,您只需要在该点进行强制转换),并且您仍然需要将SelectedValue
作为一行强制转换为该类,从那里您可以获得它的一些内容。
设置断点,使用调试器,查看对象中的数据。
尝试SelectedValuePath访问要查看的数据
至少现在(问题提出2年后)可以访问DataRowView中的数据,只需将SelectedValue强制转换为System.data.DataRowView并访问属性Row["colName"],如下所示:
((System.Data.DataRowView)ComboBoxName.SelectedValue).Row["colName"];