Смысл ObservableCollection
в том, что вам не нужно реализовывать то, что вы предлагаете в вашем SampleData
геттере.Здесь можно выбрать 2 подхода:
Использовать ObservableCollection
Обратите внимание, что здесь есть лучшие варианты, но они выходят за рамки вопроса.Поиск до SelectedItem
привязок для ComboBox
.
private void CmbFilter_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// Modify your collection here based on what was selected.
}
Забудьте о ObservableCollection
Этот подход потребует от вас реализации INotifyPropertyChanged
в вашем классе ViewModel.
public IEnumerabe<string> SampleData
{
get
{
// Return values based on the selection.
if (SelectedData == "FirstValueICareAbout") // SelectedData assumes you have investigated how to bind to the SelectedItem of a ComboBox.
{
return new[]
{
"FirstValue",
"SecondValue"
};
}
return Enumerable.Empty<string>();
}
}
private void CmbFilter_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// Notify the UI that SampleData has changed using INotifyPropertyChanged implementation.
RaiseNotifyPropertyChanged(nameof(SampleData));
}