OpenFileDialog.ShowDialog () выдает исключение? - PullRequest
0 голосов
/ 22 июня 2011

Я пытаюсь показать диалог из одной из моих команд модели представления WPF, однако, когда я вызываю ShowDialog(), он выдает System.ArgumentException, мне было интересно, может ли кто-нибудь подсказать мне, почему?

Вот мой код:

Public ReadOnly Property OpenParser As ICommand
    Get
        Return New RelayCommand(Sub(param As Object) OpenParserExecute(DirectCast(param, Frame)))
    End Get
End Property

Public Sub OpenParserExecute(ByVal mFrame As Frame)
    SaveParserExecute()
    Dim mOpenDialog As OpenFileDialog = OpenDialog
    If mOpenDialog.ShowDialog() Then ' Lines the throws the exception
        CurrentParser = New ParserEditorModel(mOpenDialog.FileName)
        mFrame.Navigate(New ParserEditor(CurrentParser))
    End If
End Sub

StackTrace по запросу:

at MS.Internal.Interop.HRESULT.ThrowIfFailed(String message)
at MS.Internal.AppModel.ShellUtil.GetShellItemForPath(String path)
at Microsoft.Win32.FileDialog.PrepareVistaDialog(IFileDialog dialog)
at Microsoft.Win32.FileDialog.RunVistaDialog(IntPtr hwndOwner)
at Microsoft.Win32.FileDialog.RunDialog(IntPtr hwndOwner)
at Microsoft.Win32.CommonDialog.ShowDialog()
at WinTransform.GUI.MainWindowModel.OpenParserExecute(Frame mFrame) in C:\Users\Alex\Desktop\MEDLI\branches\WinTransform\GUI\ViewModels\MainWindowModel.vb:line 38

1 Ответ

3 голосов
/ 22 июня 2011

Поскольку ShowDialog() само по себе возвращает Nullable(Of Boolean), а ваш оператор If ожидает ненулевое значение Boolean.

Вам придется преобразовать возвращаемое значение диалогового окна в Boolean и, если оно равно True, получить выбранный файл через свойство Filename вашего диалогового окна.

Пример .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...