Вы используете DataBinding для установки ItemsSource
в обоих ComboBox
es, но затем используете событие SelectionChanged
для получения данных из них.Я думаю, что правильным способом было бы использовать DataBinding для получения выбранных значений.
Ваш XAML будет выглядеть примерно так:
<ComboBox x:Name="CategoryCBox"
ItemsSource="{Binding Categories}"
DisplayMemberPath="Name"
MaxDropDownHeight="100"
Height="20"
SelectedItem="{Binding SelectedCategory}"
FontSize="11"/>
<ComboBox x:Name="TypeCBox"
ItemsSource="{Binding SelectedItem.Series, ElementName=CategoryCBox}"
SelectedItem="{Binding SelectedSeries}"
Height="20"
FontSize="11"/>
Вам также необходимо добавить эти два свойства:SelectedCategory
и SelectedSeries
для Oclist
класса.
public Category SelectedCategory { get; set; }
public string SelectedSeries { get; set; }
Подробнее о связывании данных в документах здесь
Также здесь есть превосходный blogpost в WPF ComboBox.
EDIT
Если вы просто хотите, чтобы ваш код работал, измените его на следующее:
string Selected = ((Category)CategoryCBox.SelectedItem).Name;
MessageBox.Show(Selected);
Но правильный путь - это правильный подход DataBinding
.