Выделенный выпадающий список WPF c # - PullRequest
1 голос
/ 21 июня 2011

Я хочу получить выбранный элемент в выпадающем списке 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 ]

2 голосов
/ 21 июня 2011

Когда вы привязываетесь к ADO.NET, вы всегда привязываете данные к DataView. Каждый DataRowView помещает DataRow в исходную таблицу DataTable

.

Вы можете получить выбранный DataRow с помощью следующего:

DataRowView selectedDataRowView = (DataRowView)ddDir.SelectedItem;
DataRow selectedRow = selectedDataRowView.Row;
0 голосов
/ 21 июня 2011

Когда вы определили событие изменения выбора, вы можете легко получить любое значение из таблицы, которую вы привязываете к ddDeputi, по значению индекса .... Используйте comboBox1.SelectedIndex для индекса таблицы в событии ddDeputi_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 дает вам выбранное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...