Пример #1
0
        private void OnNext(object obj)
        {
            if (obj.ToString() == "Next")
            {
                click += 1;
                if (ChartViewModel.Item == null)
                {
                    if (CurrentItem != null)
                    {
                        ((CurrentItem as OrgNodeViewModel).Content as Employee).IsFocus = NodeFocusState.Normal;
                    }
                    if (PreviousItem != null)
                    {
                        ((PreviousItem as OrgNodeViewModel).Content as Employee).IsFocus = NodeFocusState.Normal;
                    }
                    ChartViewModel.StartSearch();
                    ChartViewModel.Item = ChartViewModel.Searchview.SearchResult.GetEnumerator();
                    MoveNext();
                    previousstack = new Stack <OrgNodeViewModel>();
                }
                else
                {
                    PreviousItem = CurrentItem;
                    if (PreviousItem != null)
                    {
                        ((PreviousItem as OrgNodeViewModel).Content as Employee).IsFocus = NodeFocusState.Normal;
                    }

                    if (PreviousItem != null && previousstack != null)
                    {
                        ((PreviousItem as OrgNodeViewModel).Content as Employee).IsFocus = NodeFocusState.Normal;
                        if (!previousstack.Contains((PreviousItem as OrgNodeViewModel)))
                        {
                            (previousstack as Stack <OrgNodeViewModel>).Push((PreviousItem as OrgNodeViewModel));
                        }
                    }
                    MoveNext();
                    if (CurrentItem == null)
                    {
                        ChartViewModel.Item.Reset();
                        MoveNext();
                    }
                }
            }
            else if (obj.ToString() == "Previous")
            {
                if (previousstack == null)
                {
                    previousstack = new Stack <OrgNodeViewModel>();
                    foreach (var item in ChartViewModel.Searchview.SearchResult)
                    {
                        previousstack.Push(item as OrgNodeViewModel);
                    }
                }
                if (previousstack != null && previousstack.Count > 0)
                {
                    if (CurrentItem != null)
                    {
                        ((CurrentItem as OrgNodeViewModel).Content as Employee).IsFocus = NodeFocusState.Normal;
                    }
                    if (previous == null)
                    {
                        previous = previousstack.GetEnumerator();
                        MovePrevious();
                    }
                    else
                    {
                        PreviousItem = previous.Current;
                        if (previous.Current != null)
                        {
                            if (previousstack.Last <OrgNodeViewModel>() == previous.Current)
                            {
                                ((PreviousItem as OrgNodeViewModel).Content as Employee).IsFocus = NodeFocusState.Normal;
                                previous.Reset();
                            }
                            else
                            {
                                ((PreviousItem as OrgNodeViewModel).Content as Employee).IsFocus = NodeFocusState.Normal;
                            }
                        }
                        else
                        {
                            previous.Reset();
                        }
                        MovePrevious();
                    }
                }
            }
        }