У меня есть 2 ComboBoxes каждый с 2-мя методами _Loaded и _Selection изменилКак связать 2 ComboBoxes
я хочу, чтобы выбрать место в первом меню, а затем следующий выпадающий должны перечислить кучу дат для этого конкретного места
Вот что я до сих пор:
<ComboBox
x:Name="comboBoxLocation"
Text="Lokation"
HorizontalAlignment="Left" Margin="50,305,0,0"
VerticalAlignment="Top"
Width="120"
Loaded="ComboBoxLocation_Loaded"
SelectionChanged="ComboBoxLocation_SelectionChanged"/>
<ComboBox x:Name="comboBoxDate"
Text="Dato" HorizontalAlignment="Left"
Margin="195,305,0,0"
VerticalAlignment="Top" Width="120"
Loaded="ComboBoxDate_Loaded"
SelectionChanged="ComboBoxDate_SelectionChanged"/>
и
private void ComboBoxLocation_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var comboBoxLocation = sender as ComboBox;
comboBoxDate.SelectedIndex = 0;
comboBoxDate.ItemsSource = controller.GetBusTimes();
//ComboBoxDate_Loaded(sender, e);
}
private void ComboBoxDate_Loaded(object sender, RoutedEventArgs e)
{
List<string> dataDate = controller.GetBusTimes();
var comboBoxDate = sender as ComboBox;
comboBoxDate.ItemsSource = dataDate;
}
Кажется, это намного сложнее, чем я ожидал ... Я начинаю думать, что у меня может быть какая-то основная ошибка здесь ...
Я занимаюсь этим ... Я могу показать список местоположений в первом поле и соответствующие даты для этого местоположения - второе поле. Но когда я меняю первое место, даты остаются неизменными ...
Как бы я это сделал?
Я бы связать выбранный элемент первого выпадающего списка на свойство вашей ViewModel и в инкубаторе я хотел бы изменить коллекцию (которая должна быть наблюдаемые) элементов в другом свойстве, которое также связано с графическим интерфейсом. Ты знаешь, что я имею в виду? –
* "имеют простую фундаментальную ошибку" * - вы используете wpf, как и winforms, поэтому вы наследуете все связанные с ним проблемы. При использовании шаблона MVVM очень легко создать связь данных между мастером/деталями. Например. привязка коллекции элементов к одному combobox 'ItemsSource' (и отображению только местоположения), который' SelectedItem' привязан к свойству в setter, о котором вы обновляете данные (создаете еще одну коллекцию и увеличиваете уведомление), привязанные ко второму combobox 'ItemsSource'. – Sinatr
И ваша ошибка на самом деле пытается использовать событие «Loaded». Он поднимается только один раз. Скорее переустановите 'comboBoxDate.ItemsSource' в' comboBoxLocation_SelectionChanged'. Я вижу, что вы пробовали это (прокомментированная строка), вам, возможно, придется сделать это за 2 шага (сначала установите значение «null»). – Sinatr