//ViewModel
public ObservableCollection<Y> ObservableListOfY { get; set; }
private Y _SelectedY;
public Y SelectedY;
{
get { return _SelectedY; }
set
{
_SelectedY = value;
OnPropertyChanged();
}
}
private string _SearchBoxText = string.Empty;
public string SearchBoxText
{
get { return SearchBoxText; }
set
{
_SearchBoxText = value;
FilterData();
OnPropertyChanged();
}
}
public ctor()
{
ObservableListOfY = ...
}
public void FilterData()
{
//This filter works
CollectionViewSource.GetDefaultView(ObservableListOfY ).Filter = o => (o as Y).ListOfX.Any(x => x.Name.Contains(SearchBoxText));
//This one doesn't, probably because ListOfZ is not an ObservableCollection
CollectionViewSource.GetDefaultView(SelectedY.ListOfZ).Filter = o => (o as X).Name.Contains(SearchBoxText);
}
//ViewModel
public ObservableCollection<Y> ObservableListOfY { get; set; }
private Y _SelectedY;
public Y SelectedY;
{
get { return _SelectedY; }
set
{
_SelectedY = value;
OnPropertyChanged();
}
}
private string _SearchBoxText = string.Empty;
public string SearchBoxText
{
get { return SearchBoxText; }
set
{
_SearchBoxText = value;
FilterData();
OnPropertyChanged();
}
}
public ctor()
{
ObservableListOfY = ...
}
public void FilterData()
{
//This filter works
CollectionViewSource.GetDefaultView(ObservableListOfY ).Filter = o => (o as Y).ListOfX.Any(x => x.Name.Contains(SearchBoxText));
//This one doesn't, probably because ListOfZ is not an ObservableCollection
CollectionViewSource.GetDefaultView(SelectedY.ListOfZ).Filter = o => (o as X).Name.Contains(SearchBoxText);
}