private async void ExecuteGetDialog(object o)
        {
            var dir            = Path.Combine((IsDirectorySelected ? _selectedLocalPath : null) ?? RootDirectories[0].Path);
            var selectedZkPath = IsZkPathSelected ? _selectedZkPath : null;

            //let's set up a little MVVM, cos that's what the cool kids are doing:
            var context = new TransferDialogViewModel
            {
                LocalDirectory = Path.Combine(dir, Path.GetFileName(selectedZkPath ?? string.Empty)),
                ZkPath         = selectedZkPath,
            };
            var view = new GetDialog
            {
                DataContext = context
            };

            //show the dialog
            await DialogHost.Show(view, "RootDialog", GetClosingEventHandler);
        }
        private async void ExecutePutDialog(object o)
        {
            var path           = _selectedLocalPath;
            var selectedZkPath = IsZkPathSelected ? _selectedZkPath : null;

            //let's set up a little MVVM, cos that's what the cool kids are doing:
            var context = new TransferDialogViewModel
            {
                LocalDirectory = path,
                ZkPath         = selectedZkPath != null?
                                 Path.Combine(selectedZkPath, Path.GetFileName(path) ?? string.Empty).Replace("\\", "/") :
                                     "/" + Path.GetFileName(path)
            };
            var view = new PutDialog
            {
                DataContext = context
            };

            //show the dialog
            await DialogHost.Show(view, "RootDialog", PutClosingEventHandler);
        }