Получить выбранное значение из поля со списком в C # WPF - PullRequest
57 голосов
/ 04 декабря 2010

Я только начал использовать формы WPF вместо форм Windows Forms.В форме Windows Forms я мог бы просто сделать:

ComboBox.SelectedValue.toString();

И это будет нормально работать.

Как мне это сделать в WPF?У этого, кажется, нет возможности.

Ответы [ 20 ]

1 голос
/ 22 октября 2015
private void usuarioBox_TextChanged(object sender, EventArgs e)
{
    string textComboBox = usuarioBox.Text;
}
1 голос
/ 05 июня 2015

У меня была похожая проблема, и я попробовал несколько решений, предложенных в этой теме, но обнаружил, что событие SelectionChanged сработало до того, как элемент ComboBox фактически обновился, чтобы показать новый выбор (т. Е. Поэтому он всегда давал содержимое комбинированного списка док происходящему изменению).

Чтобы преодолеть это, я обнаружил, что лучше использовать параметр e, который автоматически передается в обработчик событий, а не пытаться загрузить значение непосредственно из поля со списком.

XAML:

<Window.Resources>
    <x:Array x:Key="Combo" Type="sys:String">
        <sys:String>Item 1</sys:String>
        <sys:String>Item 2</sys:String>
    </x:Array>
</Window.Resources>
<Grid>
    <ComboBox Name="myCombo" ItemsSource="{StaticResource Combo}" SelectionChanged="ComboBox_SelectionChanged" />
    <TextBlock Name="MyTextBlock"></TextBlock>
</Grid>

C #:

private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    string chosenValue = e.AddedItems[0].ToString();
}
0 голосов
/ 19 апреля 2018

Я использую этот код, и он работает для меня:

DataRowView typeItem = (DataRowView)myComboBox.SelectedItem; 
string value = typeItem.Row[0].ToString();
0 голосов
/ 31 июля 2017

у меня работает:

System.Data.DataRowView typeItem = (System.Data.DataRowView)ComboBoxName.SelectedItem;
string value = typeItem.DataView.ToTable("a").Rows[0][0].ToString();
0 голосов
/ 28 мая 2017

Напишите так:

String CmbTitle = (cmb.SelectedItem as ComboBoxItem).Content.ToString()
0 голосов
/ 25 октября 2016

На самом деле вы также можете сделать это следующим образом.

Предположим, ваше имя ComboBox comboBoxA.Тогда его значение можно получить следующим образом:

string combo = comboBoxA.SelectedValue.ToString();

Я думаю, что теперь оно поддерживается, поскольку вашему вопросу пять лет.

0 голосов
/ 30 апреля 2016

Чтобы получить значение выбранного индекса ComboBox в C #, используйте:

Combobox.SelectedValue
0 голосов
/ 04 декабря 2010

Это тот же принцип.

Вы можете использовать SelectedIndex и использовать ComboBox.Items [SelectedIndex] .ToString (). Или просто ComboBox.SelectedItem и приведите его к любому типу вам нужно:)

0 голосов
/ 21 мая 2013
MsgBox(cmbCut.SelectedValue().ToString())
0 голосов
/ 19 ноября 2012

XAML:

<ComboBox Height="23" HorizontalAlignment="Left" Margin="19,123,0,0" Name="comboBox1" VerticalAlignment="Top" Width="33" ItemsSource="{Binding}" AllowDrop="True" AlternationCount="1">
    <ComboBoxItem Content="1" Name="ComboBoxItem1" />
    <ComboBoxItem Content="2" Name="ComboBoxItem2" />
    <ComboBoxItem Content="3" Name="ComboBoxItem3" />
</ComboBox>

C #:

if (ComboBoxItem1.IsSelected)
{
    // Your code
}
else if (ComboBoxItem2.IsSelected)
{
    // Your code
}
else if(ComboBoxItem3.IsSelected)
{
    // Your code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...