2015-11-15 3 views
0

Я новичок в WPF и C# и не могу понять, как вернуть значение изнутри Button_Click.Как вернуть значение main из Button_Click

Я пытаюсь заставить пользователя выбрать местоположение файла, а затем передать это местоположение в основное, чтобы сделать что-то, вот мой код до сих пор, который работает, но не может передать строку обратно.

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    public static string Button_Click(object sender, RoutedEventArgs e) 
    { 
     var dialog = new System.Windows.Forms.FolderBrowserDialog(); 
     System.Windows.Forms.DialogResult result = dialog.ShowDialog(); 
     string FolderLocation = dialog.SelectedPath; //this is c:/folder 

     return FolderLocation; 
    } 

    // need to use FolderLocation here to do some stuff. 
} 
+1

Добавить глобальную переменную и здесь u go (?) –

+0

В каком месте вы хотите вернуть папку? – jhmt

+0

Вы хотите использовать его внутри одного класса? если это так, то вам нужно пойти, как предлагает @ Sebastian506563. Просто добавьте приватную переменную folderLocation и присвойте ей значение. – fabricio

ответ

0

код в вашем вопросе не должен даже компилировать. Подпись события Button_Click не может иметь возвращаемого значения.

В то время как это также возможность сохранить этот выбор в «глобальной» переменной, это не решает дилемму, что делать с выбором после его сохранения там. Если состояние выбора не должно поддерживаться, лучшим решением является немедленное его передача методу, который будет потреблять информацию.

public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
     } 

     private void Button_Click(object sender, RoutedEventArgs e) 
     { 
      var dialog = new System.Windows.Forms.FolderBrowserDialog(); 
      System.Windows.Forms.DialogResult result = dialog.ShowDialog(); 
      ProcessFolderLocation(dialog.SelectedPath); 
     } 

     private void ProcessFolderLocation(string location) 
     { 
      // ... Do something with your selected folder location 
     } 
    } 
+0

Да, конечно! Большое вам спасибо за ваше время и за решение моего очень простого вопроса, как я уже сказал, что я очень новичок. Изучение всего синтаксиса - это одно, что логично логично рассуждает, просто скажу, что мне нужно многому научиться. –

0

Так как я читал, вы новичок на C#, поэтому вам нужно прочитать о глобальных переменных. Сейчас я помогу вам с этим простым примером:

public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    public string globalVariable; //this is global variable (easiest one) 

    public static string Button_Click(object sender, RoutedEventArgs e) 
    { 


     var dialog = new System.Windows.Forms.FolderBrowserDialog(); 
     System.Windows.Forms.DialogResult result = dialog.ShowDialog(); 
     string FolderLocation = dialog.SelectedPath; //this is c:/folder 


     globalVariable=FolderLocation; 

    } 
    public void MethodX() 
    { 
    string variableWithValueFromButtonClick=globalVariable; 
    //U can use your globalVariable here or wherever u want inside class MainWindow 

    } 

И here у вас есть какой-то учебник

+0

Я также благодарю вас за ваш вклад. –

Смежные вопросы