Mam okno, które powoduje otwarcie innego okna. Chcę, aby drugie okno mogło zwrócić obiekt do pierwszego okna po naciśnięciu przycisku. Jak to zrobić?Wartość zwracana okna WPF
Odpowiedz
Możesz odsłonić właściwość w drugim oknie, tak aby pierwsze okno mogło ją odzyskać.
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; }
}
}
To nie działa, ponieważ użytkownik wchodzi w interakcję z oknem i naciska przycisk, zanim chcę, aby okno nadrzędne odebrało wartość. – Reflux
Rozgryzłem to. Problem polegał na tym, że (w.ShowDialog() == false). – Reflux
@Reflux: jesteś pewien? ShowDialog zwraca wartość false, gdy użytkownik anuluje okno dialogowe, więc prawdopodobnie nie chcesz wziąć pod uwagę wartości w tym przypadku. –
Jeśli nie chcesz narazić właściwość, a chcesz, aby korzystanie trochę bardziej wyraźne, można przeciążać ShowDialog
:
public DialogResult ShowDialog(out MyObject result)
{
DialogResult dr = ShowDialog();
result = (dr == DialogResult.Cancel)
? null
: MyObjectInstance;
return dr;
}
wiem, że to jest stary, ale szukałem tych samych informacji dla aplikacji WPF, nad którą pracuję. Znalazłem to miejsce, aby być naprawdę pomocne:
http://www.dreamincode.net/forums/topic/206458-the-right-way-to-get-values-from-form1-to-form2/
To jest napisane dla Windows Forms, ale jeśli pominąć część o przekazywanie wartości do nowego okna, to nadal pracował i miał kilka naprawdę dobrych informacji.
Na marginesie, aby przekazać wartości do nowego okna, to było bardzo pomocne:
Witamy w StackOverflow. Chociaż podane linki mogą być pomocne, zawsze lepiej jest umieścić główne punkty w swoim wpisie bezpośrednio. W ten sposób twoja odpowiedź nie staje się nieistotna, jeśli link zostanie zerwany, a także łatwiejszy w użyciu i bardziej pomocny. Dlatego zalecam odpowiednią edycję odpowiedzi. Z poważaniem – YakovL
- 1. Wartość okna wyskakującego wartość zwracana
- 2. Okno jupiterowe Wartość zwracana okna do obiektu nadrzędnego
- 3. uint32_t wartość zwracana destructor
- 4. Jquery wartość zwracana
- 5. Wartość zwracana z chrome.tabs.executeScript
- 6. Wartość zwracana x = os.system (..)
- 7. „sys.getrefcount()” wartość zwracana
- 8. wartość zwracana po obietnicy
- 9. Lua os.execute wartość zwracana
- 10. zachowanie sscanf/wartość zwracana
- 11. wartość zwracana Mybatis
- 12. Wartość zwracana procesu w tle
- 13. Nieoczekiwana wartość zwracana z fread()
- 14. Czy wartość zwracana przez IOCTL:
- 15. AJAX jQuery PHP Wartość zwracana
- 16. Zwracana wartość podczas korzystania cProfile
- 17. Scala wartość zwracana z onComplete
- 18. Pierwsze wartość zwracana z Task.Run
- 19. EasyMock andReturn() null zwracana wartość
- 20. Ocena WKWebView JavaScript wartość zwracana
- 21. Dowiedz się, ile wartości będzie zwracana wartość zwracana
- 22. Czy można uzyskać wartość Hwnd kontrolki okna podręcznego WPF?
- 23. Zmiana zawartości okna WPF
- 24. WPF Zmiana rozmiaru okna bez obramowania
- 25. Masz okno wpf wewnątrz innego okna wpf
- 26. Powershell: Tablica wielowymiarowa jako wartość zwracana funkcji
- 27. XQuery: Zwracana wartość elementu raczej samego elementu
- 28. modyfikując wydajność od za wartość zwracana
- 29. "zwracana wartość" z wyjątku Konstruktora w Javie?
- 30. Android menuitem onclick wartość zwracana handler'a
Czy nowe okno modalne do pierwszego okna? – Robaticus
Na początku nawet nie wiedziałem, co to jest okno modalne, ale doszedłem do tego. Kod Thomas'a z niewielką zmianą działał. – Reflux