wpf: получение значения в выпадающем списке - PullRequest
3 голосов
/ 06 апреля 2010

У меня есть ComboBox WPF с именем cbFileSize. Я пытаюсь получить выбранное значение так:

string tmp = cbFileSize.SelectedValue.ToString();
MessageBox.Show(tmp);

Но tmp получает значение "System.Windows.Control.ComboBoxItem: 16".

Какую функцию я должен использовать, чтобы просто получить значение "16"?

Ответы [ 2 ]

4 голосов
/ 06 апреля 2010

string tmp = (cbFileSize.SelectedValue как ComboBoxItem) .Content.ToString ();

или

string tmp = (cbFileSize.SelectedItem as ComboBoxItem) .Content.ToString ();

Изменить (для получения дополнительной информации): Если позже вы свяжете свой список значений поля со списком с набором строк, вы сможете сделать это так, как вы. Тем не менее, вы помещаете коллекцию ComboBoxItems в ваш ComboBox, поэтому вы выбралиItem или selectedValue будет ComboBox Item:

<ComboBox x:Name="comboBox">
    <ComboBoxItem>15</ComboBoxItem>
    <ComboBoxItem>16</ComboBoxItem>
    <ComboBoxItem>17</ComboBoxItem>
</ComboBox>

Полагаю, вы делаете что-то подобное вышеописанному. Поскольку вы получаете ComboBoxItem в качестве выбранного элемента, вам просто нужно привести его к действию, а затем получить содержимое (которое является вашим числовым значением).

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

0 голосов
/ 30 мая 2016

Также можно просто использовать метод / свойство Tag в комбобоксите

<ComboBoxItem Content="This Value" Tag="This Value"/>

Затем в коде:

GetValue=ComboBoxName.SelectedItem.Tag.ToString()

Получить значение будет «Это значение» вместо «Система.Windows.Controls.ComboBoxItem: This Value "

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