【问题标题】:Combobox Selected Item WPF c#组合框选定项目WPF c#
【发布时间】:2011-06-21 04:20:45
【问题描述】:

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



        }
    }

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    当您绑定到 ADO.NET 时,您总是将数据绑定到 DataView。每个 DataRowView 在源 DataTable 中包装一个 DataRow

    您可以通过以下方式获取选中的DataRow:

    DataRowView selectedDataRowView = (DataRowView)ddDir.SelectedItem;
    DataRow selectedRow = selectedDataRowView.Row;
    

    【讨论】:

      【解决方案2】:

      当您定义了选择更改事件后,您可以轻松地从您通过索引值绑定到 ddDeputi 的表中获取任何值...。 在事件 ddDepti_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 给你选择的值。

      【讨论】:

        猜你喜欢
        • 2013-01-14
        • 1970-01-01
        • 2010-11-13
        • 1970-01-01
        • 2011-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多