Witam. Mam listę elementów A. (ObservableCollection)
Każdy element listy A zawiera listę B. (ObservableCollection)
Mam 2 listboxy.
W listboxie1 (elementy A) mam:
hListConnections.ItemsSource = Engine.ListConnections.ListTravel;
Każdy element ma tekst:
public void UpdateName()
{
try
{
sConnectionName = ListConnection.First().PlaceTo.sName + " - " + ListConnection.Last().PlaceTo.sName;
}
catch
{
sConnectionName = "";
}
}
Jest miejsce rozpoczynające trasę i kończące trasę.
Po każdym dodaniu nowego miejsca aktualizuje się zmienna
sConnectionName
Drugi ListBox jest uzależniony od tego, jaki element zaznaczylismy w pierwszym. Początkowo jest to domyślna lista:
ObservableCollection<cListConnection> DefListConnection = new ObservableCollection<cListConnection>();
hListConnection.ItemsSource = DefListConnection;
Zawiera ona wszystkie miejsca od początku do końca, przez które będziemy przejeżdżać:
private void hListConnections_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if(hListConnections.SelectedIndex == -1)
{
hListConnection.IsEnabled = false;
hListStation.IsEnabled = false;
hAddStation.IsEnabled = false;
hListConnection.ItemsSource = DefListConnection;
}
else
{
hListConnection.IsEnabled = true;
hListStation.IsEnabled = true;
hAddStation.IsEnabled = true;
hListStation.SelectedIndex = -1;
hListConnection.ItemsSource = ((cListConnection) hListConnections.SelectedItem).ListConnection;
}
}
Problem leży w tym, że po dodaniu nowego miejsca tekst się zmienia, nowe miejsce trasy dodaje się w ListBoxie2, ale tekst w elemencie zaznaczonym nie zmienia się. Jak poprawnie obsłużyć zmianę tekstu?
Na screenie przedstawiam odczytanie stringa z elementu ListBox1. Niestety na listBoxie1 nie widać tej zmiany.