2011-06-12 75 views
0

我有一个绑定为DataSetComboBox。我想在ComboBox选择有变化时显示选定的值。我有以下代码:如果将ComboBox绑定到数据集时如何显示ComboBox的SelectedValue

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

不工作,要么..

+0

谁给我留下评论,至少留下评论为什么你这样做。我搜索了周围SO和谷歌没有回答这一个。 – KMC 2011-06-12 11:53:15

+0

我知道问题提出后有点长,但我想现在有可能以简单的方式实现你想要的东西。 – Tafari 2013-11-15 09:31:52

回答

2

DataRowView没有内容from what i can see。你SelectedValuePath应指向我认为(或者,如果当前路径正确地指向的ContentComboBoxItem你只需要在这一点上投),而且你还需要转换SelectedValue是一排的那类和从那里你可以得到它的一些内容。

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

+0

谢谢,但我怎么能指向行?我试过devCb1.SelectedValuePath =“Row”或MessageBox.Show((作为RowView的devCb1.SelectedValue).ToString());但任何一个只是抛出我的例外.. – KMC 2011-06-12 12:00:49

+2

更新我的问题,因为你的内容可能需要保留的路径,并将选定的值转换为DataRowView ComboBoxItem的内容,不要只调用ToString的一切,你应该漂亮绝不使用该方法,查看调试器中的数据并获取所需的字段/属性。 – 2011-06-12 12:03:30

2

尝试SelectedValuePath以访问要查看的数据

+0

我试过了,它不起作用 – KMC 2011-06-12 11:52:32

0

那么它可能至少现在(的问题作出2年后),通过简单的铸造的SelectedValueSystem.Data.DataRowView和访问性能行[“COLNAME内DataRowView的访问数据“]是这样的:

((System.Data.DataRowView)ComboBoxName.SelectedValue).Row["colName"]; 
相关问题