Example #1
0
        /// <summary>
        /// SortEventArgs转换为SortListSummaryViewModel
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public static SortListSummaryViewModel SortEventArgsToSortListSummaryViewModel(SortEventArgs args)
        {
            var resultArr = args.SortCompletedList.ToArray();
            var model     = new SortListSummaryViewModel()
            {
                ExecuteCount = args.ExecuteCount
            };

            for (int i = 0; i < resultArr.Length; i++)
            {
                var numModel = new SortNumsViewModel()
                {
                    SortNum      = resultArr[i].ToString(),
                    CurrentIndex = args.CurrentSortIndex
                };
                //如果当前交换元素的索引存在,并且当前元素索引等于正在交换的元素的索引
                if (args.CurrentExchangeElementIndex != -1 &&
                    i == args.CurrentExchangeElementIndex)
                {
                    numModel.CurrentExchangeElementIndex = args.CurrentExchangeElementIndex;
                }
                //如果当前元素的下标等于回调中的当前元素的下标
                if (i == args.CurrentSortIndex)
                {
                    numModel.IsIndexVisibile = true;
                }
                model.SortingList.Add(numModel);
            }
            return(model);
        }
        private void _bubbleSort_ProcessSortEvent(SortEventArgs args)
        {
            var resultArr = args.SortCompletedList.ToArray();

            if (resultArr == null)
            {
                return;
            }
            SortListSummaryViewModel model = SortListSummaryViewModel.SortEventArgsToSortListSummaryViewModel(args);

            Dispatcher.BeginInvoke(new Action(() =>
            {
                BubbleSortedList.Add(model);
            }));
        }