У меня возникла проблема с попыткой получить SelectedItem
в ListBox
. Listbox
- это источник данных, связанный со списком в моем примере.Проблема с ListBox SelectedItem. Отображение переопределенного ToString вместо
listBox1.DisplayMember = "StringPosition";
listBox1.ValueMember = "StringPosition";
listBox1.DataSource = MatchList;
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string curItem = listBox1.SelectedItem.ToString();
MessageBox.Show(curItem);
}
Когда я запустить программу и выбрать пункт в списке, а не MessaseBox
показывая SelectedItem
он показывает преодолено ToString
метод в моем пользовательском классе. Теперь пользовательский метод ToString
был оставлен в стороне от примера MSDN, и мне это действительно не нужно. Однако даже если я прокомментирую это, а не переопределенный ToString
, он просто отобразит Parser.SectorBodies
, который является моим пространством имен проектов и пользовательским классом. Так как же я решить эту проблему, так что я могу получить выбранный элемент в моей ListBox
static List<SectorBodies> MatchList = new List<SectorBodies>();
public class SectorBodies
{
public int MatchCount { get; set; }
public string StringPosition { get; set; }
public string SolarSystemFileComment { get; set; }
public string SolarSystemX { get; set; }
public string SolarSystemY { get; set; }
public string SolarSystemZ { get; set; }
public override string ToString()
{
return
" Position: " + StringPosition +
" Count: " + MatchCount;
}
}
Что вы хотите, чтобы показать? Выбранный элемент будет объектом, поскольку вы используете их в качестве источника данных. – Plutonix
@Plutonix. Я пытался получить текст выбранного элемента, чтобы оценить его. –
Непонятный вопрос. Вы имели в виду это: 'SectorBodies curItem = listBox1.SelectedItem as SectorBodies; MessageBox.Show (curItem.ToString()); '? – Sakura