组合框所选项目WPF c#
本文关键字:WPF 项目 选项 组合 | 更新日期: 2023-09-27 17:59:38
我想在组合框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();
}
}
绑定到ADO.NET时,始终是数据绑定到DataView。每个DataRowView在源DataTable 中包装一个DataRow
您可以通过以下方式获取选定的DataRow:
DataRowView selectedDataRowView = (DataRowView)ddDir.SelectedItem;
DataRow selectedRow = selectedDataRowView.Row;
当您定义了选择更改事件时,您可以很容易地从通过索引值绑定到ddDepti的表中获得任何值。。。。使用组合框1.SelectedIndex作为事件ddRepeti_SelectionChanged中的表索引。。
像这个
String value = data.Tables[0].Rows[ddDeputi.SelectedIndex]["kode"].ToString();
另一种方法是在组合框中投射所选项目并使用
System.Windows.Controls.ComboBoxItem currentItem=((System.Windows.Controls.ComboBoxItem)ddDeputi.SelectedItem);
string myvalue=currentItem.Content;
此处myvalue为u提供所选的值。