Tôi đang triển khai ứng dụng wpf hiển thị danh sách các mục và cung cấp chức năng lọc danh sách này bằng cách nhập vào hộp văn bản (trường hợp sử dụng khá nhỏ).MVP/MVVM - Lọc danh sách, ai có trách nhiệm?
Chúng tôi đang sử dụng cấu trúc MVVM.
Câu hỏi của tôi là, ai có trách nhiệm lọc danh sách này? Chế độ xem hoặc chế độ xem? Tôi có nên triển khai sự kiện "OnTextChanged" trong xaml.cs hay tôi nên sử dụng thuộc tính trong ViewModel và sử dụng PropertyChanged để lọc danh sách.
Câu hỏi tiếp theo là, tôi có nên sử dụng BindingList/ObservableCollection trong ViewModel hay sử dụng ICollectionView để ràng buộc ItemsControl không?
Tôi đã thử cả hai phương pháp và cả hai đều hoạt động. Đưa ViewModel trách nhiệm giữ mã phía sau từ Chế độ xem trống, nhưng mặt khác, tôi không hoàn toàn bị thuyết phục rằng trách nhiệm ViewModels là áp dụng lọc (ví dụ: các chế độ xem khác nhau có thể yêu cầu lọc khác nhau)
Bất kỳ suy nghĩ nào ?
cảm ơn, Roel
EDIT:
gì làm tôi bực mình về đặt nó trong ViewModel đó là (trong việc thực hiện hiện tại của tôi) có một tham chiếu System.Windows.Data. Đây là một tài liệu tham khảo tôi không muốn có trong ViewModel vì nó rõ ràng là một cái gì đó Xem liên quan. Hay tôi đang thiếu một cái gì đó? mã có liên quan:
ICollectionView customerView = CollectionViewSource.GetDefaultView(customers);
Đây là một câu hỏi hay, đặc biệt là về ViewModel yêu cầu tham chiếu đến 'System.Windows.Data'. – pauldoo