/// <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); })); }