Pierwszy raz jestem wdrożenie FolderBrowserDialog w WPF i nie będę kochać to jeden bit ...DialogResult z FolderBrowserDialog w WPF
Oprócz kwestii miałem zastanawianie się, że nie odwołuje Windows.Forms w moim projekcie, teraz mam problemy starając się zobaczyć, co jest wartością zwracaną DialogResult ...
z OpenFileDialog w przeszłości robiłem to wygląda następująco:
OpenFileDialog ofd = new OpenFileDialog();
Nullable<bool> result = ofd.ShowDialog();
if (result == true)
{
// all went well, carry on and do your thing here
}
Niestety, W tej chwili pojawiają się błędy, mówiąc coś o konwersjach z typu Dial OgResult do bool i cokolwiek masz.
Wygląda na to, że w oknie dialogowym w WPF nie widać niczego, co można zrobić, korzystając z okna dialogowego, czy ktoś może rzucić trochę światła?
Z góry dziękuję!
EDIT
Oto mój kod zmienione bez błędu konwersji typu. Nie jestem pewien, jaką wartość należy sprawdzić pod result
. Zazwyczaj używałbym DialogResult.OK
, z wyjątkiem tego, że nie pojawia się tutaj jako poprawna wartość.
private void btnBrowse_Click(object sender, RoutedEventArgs e)
{
if (cmbTemplate.SelectedItem == "Blockbusters")
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();
//
// ERROR: 'System.Nullable<bool>' does not contain a definition for 'OK'
// and no extention method 'OK' accepting a first argument of type
// 'System.Nullable<bool>' could be found.
//
if (result == DialogResult.OK)
{
txtSource.Text = fbd.SelectedPath;
}
}
}
"Okno dialogowe Windows Forms" nie zwraca wartości zerowej, jak w przypadku dialogów WPF, ale ['DialogResult'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.dialogresult .aspx). Tylko podpowiedź. :) –
Jeśli nie możesz zrozumieć błędów dotyczących konwersji między różnymi typami, powinieneś powrócić do podstaw OOP i C#, zanim spróbujesz coś zrobić w WPF, co jest złożoną strukturą nieodpowiednią dla niedoświadczonych programistów. –
@HighCore, podczas gdy Twoja sugestia mogła być najbardziej trafna, to również nie ma znaczenia. Rozumiem błąd i dlatego próbowałem ustawić wynik do obiektu DialogResult, ale to nadal nie działa w instrukcji if - stąd moje pomylenie – Ortund