То, что вы хотите, может быть достигнуто с помощью классов CollectionView. Вот как это сделать, используя DataTable в качестве источника.
DataView myView = new DataView (MyDataTable);
ICollectionView cv = CollectionViewSource.GetDefaultView (myView);
Вы также можете использовать ObservableCollection для коллекции ваших пользовательских классов. После создания представления вашей коллекции вы можете установить фильтры, а также сортировку и группировку. В пользовательском интерфейсе вы связываетесь с CollectionView, и вы готовы к работе. Таким образом, для нескольких представлений одних и тех же данных просто создайте разные экземпляры CollectionView и свяжите их с ними. Когда вы обновляете значение в пользовательском интерфейсе, товар в вашем магазине будет обновляться «автоматически»
этот сайт содержит довольно приличный, но простой пример