我想做一个控件来添加和删除两个列表中的项目(Selected和UnSelected),如下所示:
但我找不到一个好方法来做到这一点;我如何使用GridData(或像Devexpress的GridControl这样的类似控件)绑定两个List并修改它?
问题:
如果您对某些工作有任何建议或样本,那将是一个很好的帮助
答案 0 :(得分:1)
你能使用两个可观察的收藏品吗?一个用于选中,一个用于未选中。它似乎是实现此类功能的最简单方法。
public class MainViewModel
{
private readonly ObservableCollection<Item> _selectedItems = new ObservableCollection();
private readonly ObservableCollection<Item> _unselectedItems = new ObservableCollection();
public IEnumerable<Item> SelectedItems { get { return _selectedItems; } }
public IEnumerable<Item> UnselectedItems { get { return _unselectedItems; } }
private void UnselectItems()
{
MoveFromOneCollectionToAnother(_unselectedItems, _selectedItems, ...);
}
private void SelectItems()
{
MoveFromOneCollectionToAnother(_selectedItems, _unselectedItems, ...);
}
private void MoveFromOneCollectionToAnother(ICollection<Item> source, ICollection<Item> destination, IEnumerable<Item> itemsToMove)
{
foreach (var item in itemsToMove)
{
source.Remove(item);
destination.Add(item);
}
}
}