Возвращать пользовательские значения из диалогового окна WPF

Я использую метод Window.ShowDialog() для получения некоторых значений от пользователя. Однако в диалоговом окне будет возвращен только nullable bool.

Как я могу получить окно WPF для возврата Tuple<string,string> или любого другого типа?

Ответ 1

Вам не нужно возвращать это значение из метода ShowDialog, как описано здесь: "Значение Nullable < (Of < (T > ) > ) типа Boolean, которое означает, что окно было закрыто пользователем".

Вы можете просто сохранить значение, которое хотите вернуть в свойстве или поле, и получить его:

window.ShowDialog();
Tuple<string, string> value = window.InputValue;

Ответ 2

Вы можете добавить новый метод в свое Окно, что-то вроде этого:

public Tuple<string, string> ShowTupleDialog()
{
    var retTuple = new  Tuple<string, string>();
    this.ShowDialog();
    // values from dialog to retTuple (maybe use 
    //databinding and return an already defined tuple)
    return retTuple;
}