/// <summary>
        /// Adds a new file type to the system
        /// </summary>
        private void AddFileType()
        {
            FileTypeDialog ftd = new FileTypeDialog(AssociatedType);

            ftd.Owner = Application.Current.MainWindow;

            if (GeneralMethods.GetNullableBoolValue(ftd.ShowDialog()))
            {
                AddFileType(ftd.SelectedFileType);
            }
        }
        /// <summary>
        /// Edits the selected file type
        /// </summary>
        private void EditSelectedFileType()
        {
            try
            {
                FileType selectedFileType = dgFileTypes.SelectedItem as FileType;

                if (selectedFileType == null)
                {
                    GeneralMethods.MessageBoxApplicationError("Please select a file type to edit");
                    return;
                }

                FileTypeDialog ftd = new FileTypeDialog(selectedFileType.Clone() as FileType);
                ftd.Owner = Application.Current.MainWindow;

                if (GeneralMethods.GetNullableBoolValue(ftd.ShowDialog()))
                {
                    List <FileType> fileTypes = new List <FileType>(FileTypes);
                    fileTypes.Remove(selectedFileType);
                    fileTypes.Add(ftd.SelectedFileType);
                    fileTypes.Sort();

                    List <SortDescription> sortDescriptions = new List <SortDescription>(SortDescriptions);

                    FileTypes = fileTypes.ToArray();

                    SortDescriptions.Clear();

                    foreach (SortDescription sortDescription in sortDescriptions)
                    {
                        SortDescriptions.Add(sortDescription);
                    }

                    dgFileTypes.SelectedItem = ftd.SelectedFileType;
                }
            }
            catch (System.Exception e)
            {
                GeneralMethods.MessageBoxException(e, "Could not edit file type: ");
            }
        }