Скопируйте содержимое одного IEnumerable в другой после проверки индекса каждой записи - PullRequest
0 голосов
/ 19 октября 2019

Я хочу скопировать запись из одного IEnumerable в другой после проверки индекса записи. pvm состоит из набора записей с n количеством столбцов и m количеством строк. В методе view_filter я проверяю индекс. Если условие выполняется, я хочу скопировать запись в _invMstrSrchResults. Индекс проверяется один за другим.

        public PagingViewModel(IEnumerable<InventoryMasterItem> pvm)
        {            
            ViewList = new CollectionViewSource();
            ViewList.Source = pvm;
            ViewList.Filter += new FilterEventHandler(view_Filter);

            CurrentPageIndex = 0;
            itemcount = 100;
            CalculateTotalPages();            
        }

        private IEnumerable<InventoryMasterItem> _invMstrSrchResults;

        void view_Filter(object sender, FilterEventArgs e)
        {
            int index = ((InventoryMasterItem)e.Item).indexNo - 1;
            if (index >= itemPerPage * CurrentPageIndex && index < itemPerPage * (CurrentPageIndex + 1))
            {
                 // I want to copy record from pvm to _invMstrSrchResults here
                 e.Accepted = true;               
            }
            else
            {
                e.Accepted = false;
            }
        }

1 Ответ

1 голос
/ 19 октября 2019

FilterEventArgs должен содержать объект InventoryMasterItem, который вы можете получить в view_Filter. Кроме того, вам может потребоваться временно создать другую коллекцию List<InventoryMasterItem> и затем преобразовать ее в IEnumerable<InventoryMasterItem>:

InventoryMasterItem item = e.Item as InventoryMasterItem;
var list = new List<InventoryMasterItem>();
list.Add(item);
_invMstrSrchResults = list.AsEnumerable();
...