В вашей модели представления задайте для CollectionView
предикат фильтра, что-то вроде этого:
Items = CollectionViewSource.GetDefaultView(_Items) as CollectionView;
Items.Filter = (x => ((Item)x).CategoryA == SelectedCategoryA
&& ((Item)x).CategoryC == SelectedCategoryC);
Свяжите списки / поля со списком свойств SelectedItem
с SelectedCategoryA
и SelectedCategoryC
. В установщиках для этих свойств вызовите Items.Refresh()
.
Редактировать
В поле со списком свяжите ItemsSource
и SelectedItem
, например
<ListBox ItemsSource="{Binding CategoryListA}"
SelectedItem="{Binding SelectedCategoryA, Mode=TwoWay}"/>
В вашей модели представления создайте свойство, подобное этому:
private Category _SelectedCategoryA;
public Category SelectedCategoryA
{
get { return _SelectedCategoryA; }
set
{
if (value != _SelectedCategoryA)
{
_SelectedCategoryA = value;
Items.Refresh();
}
}
}