Как я достигаю объект поля списка “ключ” в c# приложении winforms?

Из того, что я вижу из вашего кода, просто импортируйте shipmentsPagination из index.js в тесте:

import defaultExport from '../../actions/';  // import the default export from index.js
const { shipments: shipmentsPagination } = defaultExport; // and use it to get shipmentsPagination
import {
  setFilters,
  removeFilter,
  toggleFiltersModal,
  setCSVDataAction,
} from '../../actions/shipments'; // everything else can come from shipments.js

Импортирование shipmentsPagination из index.js убедится, что строка export в index.js проверяется.

6
задан 3 February 2009 в 14:49
поделиться

4 ответа

Хорошо, таким образом, ответ появился в результате ответа Andy, следовательно мой upvoting тот ответ.

Но когда я создал немного класса и попытался бросить listitem в тот класс, программа выдала исключение.

Разоблачающе исключение сказало мне, что программа не могла бросить DictionaryEntry в класс типа, который я определил.

Таким образом, я удалил прокси-класс и повторно структурировал запрос таким образом:

DictionaryEntry de = (DictionaryEntry)listbox.SelectedItem;
string htKey = de.Key.ToString();

И это - вся польза.

Причудливо простой ответ в конце. Спасибо за подсказку Andy.

5
ответ дан 8 December 2019 в 18:42
поделиться

Использование обоих SelectedIndexChanged и SelectedValueChanged не работал на меня - ListBox's SelectedValue свойство было всегда пустым. Это удивило меня, также.

Как хромое обходное решение, Вы могли просто вытянуть объект из ListBox непосредственно, использование SelectedIndex:

public Form1()
{
    InitializeComponent();

    this.listBox1.DisplayMember = "Name";
    this.listBox1.ValueMember = "ID";

    this.listBox1.Items.Add(new Test(1, "A"));
    this.listBox1.Items.Add(new Test(2, "B"));
    this.listBox1.Items.Add(new Test(3, "C"));
    this.listBox1.Items.Add(new Test(4, "D"));
    this.listBox1.Items.Add(new Test(5, "E"));
}

private void OnSelectedIndexChanged(object sender, EventArgs e)
{
    if(-1 != this.listBox1.SelectedIndex)
    {
        Test t = this.listBox1.Items[this.listBox1.SelectedIndex] as Test;
        if(null != t)
        {
            this.textBox1.Text = t.Name;
        }
    }
}

(Test просто простой класс с двумя свойствами - ID и Name).

Кажется, что должен быть лучший путь, но если ничто иное это должно работать.

5
ответ дан 8 December 2019 в 18:42
поделиться

Попытайтесь захватить "ValueMember" из события ListBox1_SelectedValueChanged.

private void ListBox1_SelectedValueChanged(object sender, EventArgs e)
{
    if (ListBox1.SelectedIndex != -1)
    {
        string orbit = ListBox1.SelectedValue.ToString();
    }
}

ArrayList planets = new ArrayList();
planets.Add(new Planet("Mercury", "1"));
planets.Add(new Planet("Venus", "2"));

//Remember to set the Datasource
ListBox1.DataSource = planets;
//Name and Orbit are properties of the 'Planet' class
ListBox1.DisplayMember = "Name";
ListBox1.ValueMember = "Orbit";
1
ответ дан 8 December 2019 в 18:42
поделиться

Я оказался здесь, когда я искал, как получить значение Item в ListBox, тогда очевидное пришло к мой разум.
Секрет в том, что метод Item в C # , VB и других является массивом, поэтому для получения значения любого элемента вам просто нужно написать это:

//Get value of the #1 Item in the ListBox;
ListBox1.Items[1].toString();

Чтобы получить все Предметы и поместите в документ или в строку, просто сделайте так:

string Value;
for (int c = 0; c < ListBox1.Items.Count; c++)  {
    Value = Value + ListBox1.Items[c].toString();
}

Я надеюсь, что помог вам, ребята. Это самый простой ответ на ваш пост.

0
ответ дан 8 December 2019 в 18:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: