Tengo una ventana que muestra otra ventana. Quiero que la segunda Ventana pueda devolver un objeto a la primera Ventana cuando se presiona un botón. ¿Cómo haría esto?Valor de retorno de ventana WPF
Respuesta
Puede exponer una propiedad en la segunda ventana para que la primera ventana pueda recuperarla.
public class Window1 : Window
{
...
private void btnPromptFoo_Click(object sender, RoutedEventArgs e)
{
var w = new Window2();
if (w.ShowDialog() == true)
{
string foo = w.Foo;
...
}
}
}
public class Window2 : Window
{
...
public string Foo
{
get { return txtFoo.Text; }
}
}
Eso no funciona porque el usuario interactúa con la ventana y presiona un botón antes de querer que la ventana principal obtenga el valor. – Reflux
Lo descubrí. El problema era que debería ser si (w.ShowDialog() == falso). – Reflux
@Reflux: ¿estás seguro? ShowDialog devuelve falso cuando el usuario cancela el diálogo, por lo que probablemente no desee tener en cuenta el valor en ese caso –
Si no desea exponer una propiedad, y quiere hacer el uso de un poco más explícita, se puede sobrecargar ShowDialog
:
public DialogResult ShowDialog(out MyObject result)
{
DialogResult dr = ShowDialog();
result = (dr == DialogResult.Cancel)
? null
: MyObjectInstance;
return dr;
}
Sé que esto es un viejo, pero estaba buscando la misma información para una aplicación WPF en la que estoy trabajando. He encontrado este sitio para ser realmente útil:
http://www.dreamincode.net/forums/topic/206458-the-right-way-to-get-values-from-form1-to-form2/
Esto está escrito para Windows Forms, pero si se ignora la parte acerca de pasar los valores de la nueva ventana, todavía funcionaba y tenía algunos realmente buena información.
En una nota lateral, para pasar valores a la nueva ventana, esto fue realmente útil:
Bienvenido a StackOverflow. Si bien los enlaces que proporcionó pueden ser útiles, siempre es mejor poner los puntos principales en su publicación directamente. De esta forma, su respuesta no se vuelve irrelevante si un enlace se rompe y también es más fácil de usar y más útil. Entonces recomiendo editar tu respuesta en consecuencia. Atentamente – YakovL
- 1. Ventana emergente valor de retorno
- 2. Jquery valor de retorno
- 3. "sys.getrefcount()" valor de retorno
- 4. Precarga de ventana WPF
- 5. Tener una ventana wpf dentro de otra ventana wpf
- 6. valor de retorno javascript UIWebView
- 7. setInterval/SetTimeOut valor de retorno
- 8. jQuery ajax valor de retorno
- 9. uint32_t valor de retorno destructor
- 10. Ver valor de retorno en C#
- 11. Posición de ventana de WPF
- 12. Tamaño de ventana de WPF
- 13. macroaplicaciones 'retorno' un valor
- 14. valor de retorno de exec (@sql)
- 15. Valor entero de retorno de Hibernate
- 16. Obtener el valor de retorno de fputcsv
- 17. Obtener valor de retorno de proceso
- 18. Obtener valor de retorno después de SetTimeout
- 19. Valor de retorno de execScript (IHTMLWindow2)
- 20. Obtener el valor de retorno de JOptionPane
- 21. iPhone - performSelectorOnMainThread con valor de retorno
- 22. ¿std :: cout tiene un valor de retorno?
- 23. valor de retorno del sistema() en C
- 24. Valor de retorno en F # - constructo incompleto
- 25. ¿Cómo devolver un valor de retorno complejo?
- 26. ExternalInterface.call() no obteniendo el valor de retorno
- 27. C++ volver valor sin instrucción de retorno
- 28. EasyMock andReturn() valor de retorno nulo
- 29. java.lang.IllegalStateException: valor de retorno incompatible tipo
- 30. Valor de retorno desde el hilo
es la nueva ventana modal a la primera ventana? – Robaticus
Al principio, ni siquiera sabía qué era una ventana modal, pero lo descubrí. El código de Thomas a continuación con una ligera edición funcionó. – Reflux