private void HideShowDetails(object sender, RoutedEventArgs e)
        {
            Button      expandCollapseButton = (Button)sender;
            DataGridRow selectedRow          = DataGridRow.GetRowContainingElement(expandCollapseButton);

            if (null != expandCollapseButton && "+" == expandCollapseButton.Content.ToString())
            {
                selectedRow.DetailsVisibility = Visibility.Visible;
                expandCollapseButton.Content  = "-";
            }
            else
            {
                selectedRow.DetailsVisibility = Visibility.Collapsed;
                expandCollapseButton.Content  = "+";
                if (selectedRow.DataContext is JobPositionValueDTO)
                {
                    var parentRow = selectedRow.FindParentOfType <DataGridRow>();
                    parentRow.DetailsVisibility = Visibility.Collapsed;

                    var timer = new DispatcherTimer()
                    {
                        Interval = new TimeSpan(0, 0, 0, 0, 200)
                    };
                    timer.Tick += (ts, te) =>
                    {
                        Dispatcher.BeginInvoke(() => parentRow.DetailsVisibility = Visibility.Visible);
                        timer.Stop();
                    };
                    timer.Start();
                }
            }
        }