private static OpenMultipleDirectoriesDialog InitDialog(double?width, double?height,
                                                                string currentDirectory,
                                                                bool createNewDirectoryEnabled,
                                                                bool showHiddenFilesAndDirectories, bool showSystemFilesAndDirectories)
        {
            OpenMultipleDirectoriesDialog dialog = new OpenMultipleDirectoriesDialog();

            InitDialog(dialog, width, height, currentDirectory, showHiddenFilesAndDirectories, showSystemFilesAndDirectories, createNewDirectoryEnabled);

            return(dialog);
        }
        /// <summary>
        /// Shows a new <see cref="OpenMultipleDirectoriesDialog" />.
        /// </summary>
        /// <param name="dialogHostName">The name of the <see cref="DialogHost" /></param>
        /// <param name="args">The arguments for the dialog initialization</param>
        /// <returns></returns>
        public static async Task <OpenMultipleDirectoriesDialogResult> ShowDialogAsync(string dialogHostName, OpenMultipleDirectoriesDialogArguments args)
        {
            OpenMultipleDirectoriesDialog dialog = InitDialog(
                args.Width,
                args.Height,
                args.CurrentDirectory,
                args.CreateNewDirectoryEnabled,
                args.ShowHiddenFilesAndDirectories,
                args.ShowSystemFilesAndDirectories
                );

            return(await DialogHost.Show(dialog, dialogHostName, args.OpenedHandler, args.ClosingHandler) as OpenMultipleDirectoriesDialogResult);
        }