У меня есть ListBox, который связан с коллекцией BindingList.Это прекрасно работает.
Мое единственное горе происходит, когда первый предмет входит в коллекцию.Поведение ListBox по умолчанию заключается в выборе этого элемента, но это не вызывает событие SelectedIndexChanged.Я предполагаю, что это потому, что SelectedIndex изначально установлен в нуль;когда он становится ничем, кроме нуля, индекс фактически не изменяется;скорее назначен.Как я могу остановить поведение по умолчанию при выборе (выделении) первого начального элемента, добавленного в ListBox?
Если мое предположение неверно, пролите немного света?
Обновление
Здесь представлены основные части моего кода.
public UavControlForm()
{
InitializeComponent();
_controlFacade = new UavController.Facade.ControlFacade();
UpdateFlightUavListBox();
}
private void UpdateFlightUavListBox()
{
lsbFlightUavs.DataSource = _controlFacade.GetFlightUavTally();
lsbFlightUavs.DisplayMember = "Name";
}
private static BindingList<FlightUav> _flightUavTally = new BindingList<FlightUav>();
public BindingList<FlightUav> FlightUavTally
{
get { return _flightUavTally; }
}
public void AddFlightUav(double[] latLonAndAlt)
{
FlightUav flightUav = new FlightUav();
flightUav.Latitude = latLonAndAlt[0];
flightUav.Longitude = latLonAndAlt[1];
flightUav.Altitude = latLonAndAlt[2];
_flightUavTally.Add(flightUav);
UtilStk.InjectAircraftIntoStk(flightUav.Name);
flightUav.SetFlightDefaults();
PlayScenario();
}
Обновление:
Итак, установка lsbFlightUavs.SelectedIndex = -1
решает проблему,Вышеуказанный метод AddFlightUav()
вызывается из обработчика OnClick кнопки во второй форме из основной формы.Как я могу вызвать lsbFlightUavs.SelectedIndex = -1
из этой второй формы, когда возвращается метод AddFlightUav()
?Я знаю, что могу сделать ListBox статичным, но мне кажется, что это плохая практика ... что может быть более элегантным решением?