Combobox选择项目WPF c#

时间:2011-06-21 04:20:46

标签: c# wpf

我想在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();



        }
    }

2 个答案:

答案 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为您提供所选值。

相关问题