我想在combobox wpf中获取所选项目。但它返回System.Data.DataRowView。我在xaml中的代码:
<ComboBox Name="ddDeputi" Margin="131,85,0,0" Width="327" HorizontalAlignment="Left" VerticalAlignment="Top" Height="22"
SelectedValue="{Binding Path = kodeDep, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"
Validation.ErrorTemplate="{x:Null}" SelectionChanged="ddDeputi_SelectionChanged" Loaded="ddDeputi_Loaded" />
在我的.cs:
private void ddDeputi_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (ddDeputi.SelectedIndex != -1)
{
string akode = ddDeputi.SelectedValue.ToString();
DaUnitKerja oDa = new DaUnitKerja();
DataSet data = new DataSet();
data = oDa.TampilDir(akode);
ddDir.ItemsSource = data.Tables[0].DefaultView;
ddDir.DisplayMemberPath = data.Tables[0].Columns["unit_kerja"].ToString();
ddDir.SelectedValuePath = data.Tables[0].Columns["kode"].ToString();
ddSubDir.SelectedIndex = -1;
ComboBoxItem cbi = (ComboBoxItem)ddDeputi.ItemContainerGenerator.ContainerFromItem(ddDeputi.SelectedItem);
txtDeputi.Text = cbi.Content.ToString();
}
}
答案 0 :(得分:2)
绑定到ADO.NET时,始终是数据绑定到DataView。每个DataRowView都在源DataTable中包装DataRow
您可以通过以下方式获取所选的DataRow:
DataRowView selectedDataRowView = (DataRowView)ddDir.SelectedItem;
DataRow selectedRow = selectedDataRowView.Row;
答案 1 :(得分:0)
当您定义了选择更改事件后,您可以轻松地从表中获取任何值,并通过索引值绑定到ddDeputi .... 在事件ddDeputi_SelectionChanged中使用comboBox1.SelectedIndex作为表索引。
喜欢这个
String value = data.Tables[0].Rows[ddDeputi.SelectedIndex]["kode"].ToString();
另一种方法是在comboboxitem中投射你的组合框选择项并使用它
System.Windows.Controls.ComboBoxItem currentItem=((System.Windows.Controls.ComboBoxItem)ddDeputi.SelectedItem);
string myvalue=currentItem.Content;
此处myvalue为您提供所选值。