C# wpf adat átadása egyik ablak.cs-ből másik ablak.cs-be
2018-04-13T07:16:40+02:00
2018-04-15T20:16:23+02:00
2022-08-11T02:20:30+02:00
sutamsteve
Sziasztok!

C# wpf-ben tanulok programozni. Van egy mainwindow.xaml.cs-m, amiben van egy lista, ami egy beolvasott txt-ből fel lesz töltve adatokkal, ezeket szeretném kiíratni window1-ben, de window1-be nem kerül át adat a listámba.

mainwindow.xaml.cs-ben globális változóként létrehoztam ezt:

public List<double> tomegaram = new List<double>();
később, gombnyomáshoz kötött paranccsal feltöltöm adatokkal (ezt kipróbáltam és működik).

window.xaml.cs-ben pedig ezt írtam:

 private void Kiir_gomb_Click(object sender, RoutedEventArgs e)
        {
            MainWindow ablak = new MainWindow();
            kiir_gomb.Content = ablak.tomegaram[1];

        }

Nagyon rossz nyomon vagyok?
Mutasd a teljes hozzászólást!
A tanulmányozandó kulcsszó: MVVM

Egy első, de jó belekapás a témába:

Cod-ex: Wpf #1 adatkötés

Ja, több részes, olvasd végig.
Mutasd a teljes hozzászólást!

  • Hali!

    Használd a forráskód-gombot (a szerkesztő-mező felett, balról a harmadik: </>), ha forráskódot illesztesz be. 

    Mutasd a teljes hozzászólást!
  • A tanulmányozandó kulcsszó: MVVM

    Egy első, de jó belekapás a témába:

    Cod-ex: Wpf #1 adatkötés

    Ja, több részes, olvasd végig.
    Mutasd a teljes hozzászólást!
  • Köszönöm szépen, most olvasom, lehet hogy itt meg lesz a megoldás...
    Mutasd a teljes hozzászólást!
  • Itt lesz meg a megoldás! 
    Mutasd a teljes hozzászólást!
  • Elolvastam a blogot, még egy csomó más helyen is  olvasgatok mvvm témában, de ehhez azt hiszem én még elég kezdő vagyok, kb. 4 hónap C# tanulás van mögöttem, ennyi a programozói múltam. Lehet hogy egy ablakra próbálom besűríteni azt a programomat! De azért köszönöm szépen a segítséget!
    Mutasd a teljes hozzászólást!
  • Ne tedd :)

    Annyi a lényeg, hogy az adat tároló osztályodnak vannak formai követelményei. Azt meg kell csinálni, csak mert. (INotifyPropertyChanged)

    Innen az adattároló osztályod egyetlen példánya tartalmazza az adatokat, amin dolgozol.
    Ebbe olvasod be pl. adatbázisból.
    Ebbe kerül (automatikusan) az XAML-ből, a megadott adatkötéseken, illetve ez látszik automatikusan az XAML alapján megjelenő ablakban.

    Ha meg több ablakod van és mindnek ugyanez az egy adattároló osztálypéldány a DataContext-e, akkor nem tudsz téveszteni.
    Ha kézzel akarod beírni a WPF ablakelemekbe, kiolvasni onnan az adataidat, sőt az egyik helyen beírt adatot más elemekben is felhasználni, na akkor bele fogsz gabalyodni és sok időt tölthetsz hibakereséssel. :)
    Jobban kijössz, ha beleásod magad a MVVM mintába és annak előnyeibe.

    Elsőre több munkának látszik, de kicsit is komolyabb programnál már megtérül, ráadásul az eleje, a ViewModel felépítése favágó munka, az első megcsinálása a nehéz, onnan rutinfeladat (és vannak gyorsító trükkök, de az elsőt azért csináld meg kézzel, hogy megértsd a működést).

    Ja még valami, a háttér szálban szépen módosítgatható a viewmodel-ed. Semmi bonyodalom, csak használod és kész.
    Mutasd a teljes hozzászólást!
  • Köszönöm a bíztatást! :)

    Ma délután ketté bontottam a feladatot, egy másik kis programocskán kitesztelek/tanulok más dolgokat (amik később kelleni fognak), az eddigi programot meg meghagytam, ezen valahogy kitanulom az MVVM-et. Mai nap délelőtt összeszedtem még pár blogot meg angol videót, azok éhgyomorra elég rémisztőek voltak, bár amit most leírtál, az több sejtésemet igazolta az egész működésével kapcsolatban, ami bíztató! :)
    Még az INotifyPropertyChanged - nél álltam meg, a vs-em minden ehhez kötődő kódot aláhúzott pirossal, lehet valami bővítmény kell hozzá/valami kódrészletet nem írtam be/stb. De neten sztem valahogy össze tudom halászni a megoldást, ha mégsem akkor majd kiabálok! :D

    Köszönöm szépen a segítséget! :)
    Mutasd a teljes hozzászólást!
abcd