组合框所选项目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();

        }
    }

组合框所选项目WPF c#

绑定到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提供所选的值。