private static void GridViewColumnHeaderClickedHandler(object sender, RoutedEventArgs e)
        {
            GridViewColumnHeader headerClicked = e.OriginalSource as GridViewColumnHeader;
            ListSortDirection    direction;

            if (headerClicked != null)
            {
                if (headerClicked != _lastHeaderClicked)
                {
                    direction = ListSortDirection.Ascending;
                }

                else
                {
                    if (_lastDirection == ListSortDirection.Ascending)
                    {
                        direction = ListSortDirection.Descending;
                    }

                    else
                    {
                        direction = ListSortDirection.Ascending;
                    }
                }

                string header = String.Empty;

                try
                {
                    header = ((Binding)ListViewSorter.GetSortBindingMember(headerClicked.Column)).Path.Path;
                }
                catch (Exception ex)
                {
                    string msg = ex.Message;
                }

                if (header == String.Empty)
                {
                    return;
                }

                Sort(header, direction);

                string       resourceTemplateName = String.Empty;
                DataTemplate tmpTemplate;

                //if (_lastHeaderClicked != null)
                //{
                //    resourceTemplateName = "HeaderTemplateSortNon";
                //    tmpTemplate = lv.TryFindResource(resourceTemplateName) as DataTemplate;
                //    _lastHeaderClicked.Column.HeaderTemplate = tmpTemplate;

                //}

                switch (direction)
                {
                case ListSortDirection.Ascending: resourceTemplateName = "HeaderTemplateSortAsc"; break;

                case ListSortDirection.Descending: resourceTemplateName = "HeaderTemplateSortDesc"; break;
                }

                tmpTemplate = lv.TryFindResource(resourceTemplateName) as DataTemplate;
                if (tmpTemplate != null)
                {
                    headerClicked.Column.HeaderTemplate = tmpTemplate;
                }

                _lastHeaderClicked = headerClicked;
                _lastDirection     = direction;
            }
        }