привязка wpf в c # к фильтрованному списку - PullRequest
1 голос
/ 29 октября 2009

Я недавно начал разработку с использованием c # и wpf. В нашем приложении у нас есть объект DataGrid, который мы хотели бы привязать к списку. Однако мы не хотим связывать все записи в списке, а только те, которые соответствуют определенным критериям. Причина, по которой мы не можем привязать к отдельному списку (т. Е. Привязать к списку, созданному применением фильтра), заключается в том, что нам нужно двустороннее связывание, чтобы при добавлении пользователем строки в таблицу она добавлялась в общий список.

Вопрос1: можно ли привязать к «отфильтрованному» списку Вопрос2: если нет, каков наилучший способ получить эту функциональность? то есть отображать только определенные значения, но добавлять все новые записи в общий список

заранее спасибо

сэм

1 Ответ

3 голосов
/ 29 октября 2009

То, что вы хотите, может быть достигнуто с помощью классов CollectionView. Вот как это сделать, используя DataTable в качестве источника.

DataView myView = new DataView (MyDataTable); ICollectionView cv = CollectionViewSource.GetDefaultView (myView);

Вы также можете использовать ObservableCollection для коллекции ваших пользовательских классов. После создания представления вашей коллекции вы можете установить фильтры, а также сортировку и группировку. В пользовательском интерфейсе вы связываетесь с CollectionView, и вы готовы к работе. Таким образом, для нескольких представлений одних и тех же данных просто создайте разные экземпляры CollectionView и свяжите их с ними. Когда вы обновляете значение в пользовательском интерфейсе, товар в вашем магазине будет обновляться «автоматически»

этот сайт содержит довольно приличный, но простой пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...