Trong hành trình tìm hiểu MVVM, tôi đã thiết lập một số hiểu biết cơ bản về WPF và mẫu ViewModel. Tôi đang sử dụng trừu tượng sau đây khi cung cấp một danh sách và quan tâm đến một mục được chọn duy nhất.Quản lý nhiều lựa chọn với MVVM
public ObservableCollection<OrderViewModel> Orders { get; private set; }
public ICollectionView OrdersView
{
get
{
if(_ordersView == null)
_ordersView = CollectionViewSource.GetDefaultView(Orders);
return _ordersView;
}
}
private ICollectionView _ordersView;
public OrderViewModel CurrentOrder
{
get { return OrdersView.CurrentItem as OrderViewModel; }
set { OrdersView.MoveCurrentTo(value); }
}
Sau đó tôi có thể ràng buộc OrdersView cùng với hỗ trợ sắp xếp và lọc vào một danh sách trong WPF:
<ListView ItemsSource="{Binding Path=OrdersView}"
IsSynchronizedWithCurrentItem="True">
này hoạt động thực sự tốt cho quan điểm lựa chọn duy nhất. Nhưng tôi cũng muốn hỗ trợ nhiều lựa chọn trong chế độ xem và có mô hình liên kết với danh sách các mục đã chọn.
Làm cách nào để liên kết ListView.SelectedItems với thuộc tính người quay lại trên ViewModel?
Xin lưu ý rằng giải pháp này không hoạt động khi sử dụng VirtualizingStackPanel trong ListBox (đây là mặc định). Thông tin thêm tại bài đăng này: http://stackoverflow.com/questions/1273659/virtualizingstackpanel-mvvm-multiple-selection – decasteljau
Bắt tốt. Cảm ơn các cập nhật. Đối với lựa chọn duy nhất, giải pháp tốt nhất là ICollectionView. Microsoft cần tạo một giao diện ICollectionView hỗ trợ đa lựa chọn. –
Bạn vừa mới cứu mạng tôi! – jpsstavares