Új hozzászólás Aktív témák
-
fatal`
titán
válasz DrojDtroll #9398 üzenetére
FormatException vagy ConfigurationErrorsException (ezt inkább hiányzó config paraméternél tenném, ha nem lehet értelmes defaultot adni)
[ Szerkesztve ]
-
Keem1
veterán
Srácok, szokásos céges tool...
Adott egy olyan access, ahol céges SSO-val kellene beloginolni, pl. mint amikor 3rd party site átdob a Google loginra. A dolgot úgy képzeltem el, hogy valamilyen, akár egy beépített, akár külső böngészővel behozni a login oldalt, ahol a user beloggol, majd ha sikerült a login, ebből kéne egy session ID-t elkapni a cookieban. Ezzel már menni fog az, amit voltaképp megvalósítanék (most is megy, de nagyo bénán, a Chrome dev toolsból kell kimásolni).Azt nem tudom, hogy induljak neki. Van valami beépített browser, használjak külsőt és számomra egyelőre ködös módon szedjem ki valahogy a tokent?
Lenne javaslatotok, merre kezdjem?
Mielőtt valaki céges biztonságot kritizálná, gyorsan hozzá kell tennem, hogy csak VPN-en megy, anélkül a login oldal 404-et dob.
[ Szerkesztve ]
-
Keem1
veterán
Voltaképp megoldottam, a WebBrowser built-in client képes rá, de sztem IE 6.0 alapokon nyugszik és egy modern page egyrészt fosul néz ki rajta, másrészt a rengeteg jQuery, Javascript dobálja a hibákat.
Pedig van a gépemen Edge is, meg lehetne válogatni böngészőmotort Chrome, Firefox közül is.Ezekre valakinek megoldás? Vagy másik engine dobja a login page-et, vagy valahoy letiltani a kb. 15 db JS hibát?
De a lényeg: bent vagyok SSO-val és megvan a token is.
-
joysefke
veterán
Azure AD?
szvsz ezeket a tutorialokat lenne érdemes megnézni.
Alapvetően úgy működik a SSO, hogy van egy Identity Platform (IP) (e.g. Azure AD, vagy valami egyéb) aki a user adatbázist és az azonosításhoz szükséges információkat tartalmazza. Ez az IP ismeri a te alkalmazásodat, az ott be van regisztálva: egyebek mellett pld az IP nyilvántart az alkalmazáshoz egy redirect url-t amivel sikeres user-bejelentkeztetés után Http-redirectelheti a browsert vissza az apphoz.Az IP ezen felül nyilvántartja hogy az adott appnak a domain/tenant admin mit engedélyezett mihez milyen erősorrásokhoz legyen milyen hozzáférése/ vagy egyáltalán mihez legyen lehetősége a usertől hozzáférést kérni (admin consent-user consent).
Amikor a user be akar a Web-appodon jelentkezni, akkor a Web-app őt átirányítja (http-redirect) az IP bejelentkeztető oldalára, a user bejelentkezik. Ha szükséges akkor bejelentkezé után az IP a webalkalmazás nevében engedélyt kér a usertől az előre definiált adatok elérésére, a user ezt leokézhatja. Ha az IP boldog a bejelentkeztetéssel, akkor generál egy (vagy több) tokent. Ha OpenIdConnect a használt protokol akkor elsősorban egy ID-token generálódik (és esetleg másegyebek). Ez az ID token belekerül a Http-responsba amit az IP küld vissza a browsernek, egy Http redirect keretében amivel a usert visszaküldi as bejelentkeztetést kezdeményező Web-apphoz.
A WebApp az ID token birtokában annak tartalmából ellenőrizni tudja a böngészőt felhasználó user identitását.
=======
AzureAD-ra ingyen tudsz regisztrálni (Azure AD tenantot/domaint készíteni) ezután fogod és kipróbálod a kód sampleket (próbáltam működnek ootb), ezután megérted az OpenIdConnect use caseket (azonosítod a sajátodat) aztán úgy haladsz tovább. Ez az elmélet
NET + ASP Net Core jól működő middleware komponsnseket tartalmaz ezekhez
-
Keem1
veterán
válasz joysefke #9404 üzenetére
Ez így jól hangzik, de a "gond" az, hogy az SSO már készen van
A beléptetés egy adott oldalon megvan, nekem az ott utazó access tokenre van/volt szükségem. A toolom alapvetően konzol app lett volna, de mivel kell az access már egy belső sitehoz, muszáj volt átírnom, hisz konzolon nem tudnám magam beléptetni.Unalmas háttérsztori:
Egy k*va nagy amerikai cégnél dolgozom, és a sokszázezer munkavállalóból mi, az a csapat, ahol dolgozom, csak kis hal. Csak miattunk a developer csapat nem fog olyan toolokat fejleszteni, ami a munkánkat könnyebbé tenné, vagy legalábbis már rég nyugdíjas leszek, mire elkészülne. API nincs. Marad az, hogy megcsináljuk mi, akik ugyan nem programozók vagyunk, de azért konyítunk hozzá kicsit. Az SSO-nk, amivel a céges dolgokat elérjük, már adott. Többek között a cookieban van egy kb. 10 km hosszú access token, erre van szükségem, hogy a megfelelő oldalon a webclientet beléptessem, ami aztán eléri a szükséges adatokat a fél internetnyi méretű intraneten.Szóval nem azért adom itt a hülyét és jobbnál jobb feladatokban kérem a segítségeteket, hogy fárasszalak benneteket, hanem mert a munkám megkönnyítése érdekében jobban járok, ha megcsinálok bizonyos programokat, így bár idő és fáradság mire megszülöm (a ti segítségetekkel), de utána ismétlődő feladatok válnak könnyebbé. Pl. egy rohadt nagy, több 10 ezres adathalmazt egy weboldalról lementeni és valahogy excelbe varázsolni kézzel is lehetséges, de már kész a tool hozzá, ami végigparsolja az összes oldalt, és dob belőle egy excel táblát.
Unalmas sztori vége
-
martonx
veterán
Szerintem maradhatsz a konzol appnál és egy sima httpclient-el is be tudsz logolni. A response-ban kapott cookie-t meg elkapod, kiszeded belőle az access tokent, és kész is.
Ilyenkor kell munkahelyet váltani olyanra, ahol nem szopatnak / emberszámba vesznek.
Én kérek elnézést!
-
Keem1
veterán
válasz martonx #9406 üzenetére
Az ám, csak kell a login page, és utána a kapott cookie. A logina adataimat meg be kéne írni a webes login oldalon.
Nem elegáns, de a jobb megoldás megtalálásáig olyat csináltam, hogy a registryben egy dword-öt átírtam, így most IE 11 az emulált browser. A script hibák már elmentek.Amúgy nekem az az érzésem, hogy ez a WebBrowser control igazából legacy. Ami azért érdekes, mivel szerintem ilyenre sok esetben lehet szükség. Az Android erre kiváló példa: korábban ott is custom WebViewer volt, ami merőben más volt mint az általad böngészésre használt bármelyik webböngésző. Aztán ugye a WebKit alapú lett, amivel már gyakorlatilag bármelyik weboldal ugyanúgy működik, mintha a Chrome-ot használnád.
Az Androidos appok jelentős része használja 3rd party loginhoz. Pl. én se szívesen adom meg a Google accom adatait egy custom űrlapon, hanem teszem inkább a Google-nek, aki majd tájékoztatja a hívó weboldalt/applikációt arról, hogy sikerült-e a login, és amilyen adatokra neki szüksége van.
Nyilván egy ilyen embedded browserrel nem szörfölni akarok a neten, hanem ugyanilyen loginhoz akarom felhasználni. Ez szerintem fontos és nem hinném, hogy csak én hiányolom.
Most hogy megvan a cookie, már megy minden, a httpclientet simán felparaméterezem, még a user agentet is testre szabom. Cookie élettartam, stb. Ha a webbrowser is ugyanazt tudná, mint a httpclient (csak nyilván vizuális felülettel együtt), akkor nem lenne itt semmi gond.
-
Keem1
veterán
válasz martonx #9409 üzenetére
Persze, de a kollégákban nem ébresztene bizalmat, hogy az SSO-jukat elkéri a programom, ami aztán bármit kezdhet vele, akár tárolhatja is.
Nyilván ha akarnék, ezzel a módszerrel is vissza tudnék élni, de egy fokkal bizalomgerjesztőbb, hogy a szokásos login page jön be, jobbklikk-properties és látják a megszokott https://blablabla.com/login.jsp-t.
Ezért az ötlet az OAUTH2-féle login, ahol csak az access tokent (jelen esetben a cookie-ból) megkapva mehet minden tovább. -
sztanozs
veterán
Powershell nem téma? Ott láttam (meg próbáltam hasonlót), de csináltam már ilyet VBA-val is (VBS-ben is működne).
(#9410) - illetve ha selenium működik, akkor browser automatizálással is lehet bűvészkedni. Amúőgy melyik ez a nagy cég? (privátba is jöhet)
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Keem1
veterán
válasz sztanozs #9411 üzenetére
Most egyelőre ez így műxik, átírtam egy registry értéket, így már IE 11 az embedded browser. Néha még megpattint egy-egy javascript hibaüzenetet, de működik. Megy amúgy is, csak idegesítő lekattintani egymás után vagy 8-10 db errort.
A dolognak nincs akkora súlya hogy tovább agyaljak rajta, egyelőre így marad.
Köszi srácok, mindenkinek.
[ Szerkesztve ]
-
kw3v865
senior tag
Sziasztok!
C#-ban létrehoztam egy osztály, így:
public class adatok
{
public int dozis { get; set; }
public int allapot { get; set; }
}
Ezt követően egy 2D-s listát, melynek típusa az adatok osztály:
List<List<adatok>> lista = new List<List<adatok>>();
A problémám az, hogy nem tudok ehhez hozzáadni semmit.
Se így:lista[0][0].allapot = 1;
Se így: lista[0].Add(new SprayingData(){ dozis = 1, allapot = 3});OutOfRangeException-t dob.
Van esetleg valami tippetek, mi okozhatja a problémát? Vajon mit rontottam el?
-
fatal`
titán
válasz kw3v865 #9413 üzenetére
Nem hoztad létre a belső listát.
Először lista.Add(new List<adatok>());
Majd utána lista[0].Add(new adatok());
Utána már állítgathatod az állapotát, nyilván több elem esetén ciklusok fognak kelleni.
A konvenció szerint az osztályok és a propertyk nevét nagybetűvel kezdjük (Adatok, Dozis, Allapot).
-
kw3v865
senior tag
Hú, tényleg, köszönöm mindkettőtöknek! Így már működik .
Azonban továbbhaladva, ismét megakadtam. A lista most így van feltöltve:lista[0].Add(new SprayingData(){ dozis = 1, allapot = 3});
lista[0].Add(new SprayingData() { dozis = 2, allapot = 4 });
lista[1].Add(new SprayingData() { dozis =4, allapot = 1 });
A célom az lenne, hogy a 0-ás indexűből kiszedjem egy tömbbe az összes állapot értéket.
Tehát az új tömbnek ezeket az értékeket kellene tartalmaznia: 3,4.
Így próbáltam, de ez nem jó:int[] allapotok = lista[0].allapot;
Hogyan lehetne ezt megoldani szerinted?
[ Szerkesztve ]
-
martonx
veterán
válasz kw3v865 #9416 üzenetére
Megjegyzés 1: nagyon gyorsan felejtsd el a magyar változó neveket. Sírni tudnék, ahányszor magyar/német/bármi ami nem angol változóneveket látok.
Megjegyzés 2: használd a LINQ-t. pl nem lista[0] hanem lista.First() máris sokkal szebb, olvashatóbb.
És valami ilyesmi fog neked kelleni:
var states = myList.First().Select(item => item.state);
Ha ragaszkodsz az array kimenethez, akkor egy ToArray()-t is érdemes a végére csapni.
Én kérek elnézést!
-
PuMbA
titán
válasz kw3v865 #9416 üzenetére
A lista[0]-hoz az első sorodban látszik, hogy ezt adtad hozzá: "new SprayingData(){ dozis = 1, allapot = 3}". Tehát a lista[0]-nak nincs olyan property-je, hogy lista[0].allapot.
Megoldani úgy lehet, hogy List<int> allapotok = lista.First().Select(x => x.allapot).ToList();
[ Szerkesztve ]
-
vlevi
nagyúr
válasz drsanya #9420 üzenetére
Akkor még nem volt LINQ.
Én sem szeretem használni a var-t, de a LINQ használata esetén nem tudod, hogy milyen típusú ojjektumot ad vissza. Sokszor csak egy IEnumerable interfészt, aminek az elemei valamilyen ideiglenesen összeállított classból vannak.
Ha pl. két listát kapcsolsz össze azonosító alapján, és azokból kell neked valami."célszerűbb lenne ha ciklusokat használva LINQ helyett."
Igaz is, meg nem is. Ha elkezd ciklusokat írni, akkor azzal lesz tele a kód a tényleges feldolgozás helyett, és abban is lehet hibát véteni. Ha leír egy egysoros LINQ kifejezést, akkor azzal egy sorban meg van oldva a keresés.
Ha ciklusokkal operálsz, akkor neked kell felvenni a végeredmény változót, gondoskodni a megfelelő sorrendben való kereséshez, satöbbi.
Az viszont igaz, hogy kezdőként meg kell ismerni az alapokat, ezért néha jó, ha használja, de a LINQ egyes esetekben sokkal optimálisabb.
Harmadrészt viszont lehet ülni félórákat egyetlen gomblenyomás nélkül, mire kiagyalod a megfelelő LINQ szintatkikát ahhoz, hogy pl. két listából összeválogass magadnak valamit. -
nagyúr
"Ha ciklusokkal operálsz, akkor neked kell felvenni a végeredmény változót, gondoskodni a megfelelő sorrendben való kereséshez, satöbbi."
Ahogy mondod. A tanulás elején pedig nem árt ha megtanulod milyen módon működnek ezek a dolgok.
"LINQ egyes esetekben sokkal optimálisabb."
Ezzel egyetértek.
[ Szerkesztve ]
-
joysefke
veterán
kicsit off.
Van egy nyomorék céges laptopom ami üvölt mint egy turbina, de legalább lassú mint a csiga (9-gen top i7 ) és fontolom hogy a privát gépemre költöztessem a munkát legalább akkor amikor otthonról dolgozom mert az kussban van és még az órajeleit is tudja tartani szemben a laptoppal.
SSD-t kéne bővítenem amin a céges VM+ VS lenne. Kérdés hogy a VS Entrprisenak mennyire kell a minnél gyorsabb SSD? Fordítás meg a kódanalízis mennyire szereti a gyorsabb SSD-t (WD black vagy Crucial P5) egy alsóbb kategóriással szemben (WD blue vagy Crucial P2)?
-
drsanya
aktív tag
A hivatalos indok a szigorúan típusos nyelv miatt volt. Tehát ha definiálunk egy változót, példányosítunk tömböt, listát stb, akkor annak tudjuk a típusát, tehát használjuk azt. De most így vissza gondolva (régen volt már) talán pont a LINQ esetében volt megengedve.
I am iRacer
-
joysefke
veterán
válasz drsanya #9428 üzenetére
semmi köze a típusossághoz. var-ral is már megvan fordítási időben a változó típusa.
Egyrészt nincs sok haszna deklarációnál bal oldalra kiírni a típust ha az értékadásból már ránézésre látszik, hogy mi a típus.
Másrészt nehezíti a szerkesztést: lehet hogy le akarom cserélni a változó típusát vagy azon belül mondjuk egy generikus típusparamétert egy kompatibilisre stb. Ha bal oldalon fixen benne van a deklarációban a típus, akkor oda kell menni és manuálisan ki kell cserélni. Feleslegesen. LINQ-nél meg persze halál lenne.[ Szerkesztve ]
-
martonx
veterán
-
joysefke
veterán
válasz martonx #9434 üzenetére
Hmm nekem egy i7 9850H -val szerelt 15"-os "business" Dell noti van. Nem az én ötletem volt a régit erre cserélni.
A legkisebb terhelésre is behangosodik, ha pedig komoly terhelés van (nagy repo+ VS-E + debuggolás), akkor olyan mintha flexelnének mellettem. Az órajeleket egy pillanat alatt visszaveszi 2.6GHz-ra -lehet hogy az alá is-, aztán még a MS Teams is akad rajta. Miközben órákon keresztül úgy üvölt hogy a saját gondolataimat sem hallom...
Valószínűnek tartom, hogy ha kipróbálom, a PC-mben lévő RyZEN 3100 is tényleges munka alatt agyonveri ezt a mobil i7-et. Biztosan nem fog sem üvölteni vagy 3.9GHz alá visszevenni az órejelét.
Mindenki számára intő példa legyen, aki azt hiszi hogy ezek a "business" laptopok bírják a terhelést...
-
Keem1
veterán
válasz joysefke #9435 üzenetére
Szerintem ez leginkább a vállalati Windowsok átka lesz.
Az én céges Lenovomban egy i7 8665U van, ami a cégesszemétfeature-ök miatt eléggé ki van hajtva. A régi gép, amit erre cseréltem, az i5 procival, mezei konzumer Windows-zal sokkal gyorsabb, mint az új a vállalatival. -
Flashback
addikt
Sziasztok
Objektum orientált kérdésem lenne.
Van egy saját struktúrám hívjuk customList -nek.
Form létrehozásánál rögtön példányosítok egyet:private customList myList = new customList ();
Majd az egyik függvényemmel módosítani szeretném az értékét. Kb így néz ki:
private void changeState(myList list)
{
érték módosítás
}
Na és itt jön a problémám hogy az átpasszolt listátból létrehoz a függvény magának egy példányt és nem változik az értéke az átadott listámnak. Próbáltam static-al példányosítani de ugyanaz.
Persze ha visszadom a függvény visszatérési értékének a listát és azt egyenlővé teszem a customListámmal akkor jó, de az nem túl elegáns.
Hogy tudnám rávenni hogy az én példányomat módosítsa a függvény?
C-ben átadnám a pointert...[ Szerkesztve ]
profi gőzállomás eladó - Bocs nincs hosszú ö, ü és néha az á is ä :)
-
joysefke
veterán
Szerintem ez leginkább a vállalati Windowsok átka lesz.
Köze nincs a Windows-hoz. A Dell notebook (Precision 5540) egy szemét arra tervezték, hogy a 15-precre amire egy beszerzésért felelős vezető a kezébe veszi jó benyomást keltsen, nem arra, hogy ezt valaki 8 órában használni is akarja, főleg nem erőforrásigényes dolgokra.
Ha a Visual Studio beindul, (vagy bármi más) akkor a háttérfolyamatai felfalják a notit, pillanat alatt megeszi a turbó/hő-keretét és utána már csak 2.6GHz-en vagy alatta szerencsétlenkedik olyan hanggal mintha egy flex lenne. Es akkor már akkor sem fog felugrani 4.6GHz-re, ha olyan burstos folyamat van aminek tényleg kéne (UI vagy bármi aminek prioritása van a VS background taskokkal szemben).
Egyértelműen tervezési / beszerzési hibás ez a gép. Zabáló túlhevülő processzor egy vékony gyenge hűtésű házban.
Szerintem ez leginkább a vállalati Windowsok átka lesz.
Ezeken vállalati Windowst futtatnak. Az 5530-on konkrétan fagyott a Linux (nálunk). A Dell képzeletbeli operációs rendszerekhez fejleszti a gépeit?.
[ Szerkesztve ]
-
joysefke
veterán
válasz Flashback #9437 üzenetére
A többiek jól mondják, a ref kulcsszó kell neked, de már a kérdésből gyanús, hogy valamit nem úgy csinálsz ahogy illene:
Ha átadsz egy inicializált List-et paraméterként egy metódusnak, akkor ez esetek nagy részében ezt azért kéne tegyed, hogy a metódus olvassa a List-et, esetleg módosítsa a tartalmát (feltöltse vagy hozzáadjon) és nem azért, hogy a kapott referenciát megváltoztasd és ezáltal az eredeti List adatszerkezetet eldobd. Ha az eredeti List-re nem mutat másik referencia akkor az GC-zve lesz. Mi értelme volt akkor elötte inicializálni?
Ha új listát akarsz létrehozni, akkor érdemesebb lenne azt a metóduson belül megtenni és annak visszatérési értékeként visszaadni. Ebben az esetben viszont nem illik semmilyen bemenő paramétert megváltoztatni.
[ Szerkesztve ]
-
Keem1
veterán
válasz joysefke #9440 üzenetére
Mondjuk persze így más a leányzó fekvése, ha maga a gép szar.
A Lenovo-k minden téren jók, én amúgy meg vagyok velük elégedve, ha a civil életben is szükségem lenne laptopra, biztos hogy Lenovo lenne, hiába k*va drága.A vállalati Windows alatt azt értem, hogy nálunk egy külön enrollment image van, amit fel kell dobni a gépre. Ez gyalulja az SSD-t, titkosítja azt, beloggol a céges rendszerbe, ellenőrzi, hogy mid van (szoftver, windows, office), aztán felpakolja azokat, meg az alap céges dolgokat is, beállítja a vpn-t, proxy-t, és még sorolhatnám a listát sokáig.
Na, az enroll szoftverekben van ami rendkívül procizabáló, beleértve a nagyvállalati McAfee-t is. Nyilván az utolsó billentyűleütést is monitorozza, de azért mégis érdekes az, hogy egy sima konzumer windows-zal minden probléma eltűnik.
[ Szerkesztve ]
-
joysefke
veterán
Nekem is Lenovo volt előtte (Thinkpad T470p szintén 45W procival -4/4 i5-). Ennek 14"-os létére jobb volt a hűtése mint a 15"-os fém és jóval nehezebb Dellnek. A gép egyszerűbb volt, de jobb.
A vállalati Windows alatt azt értem, hogy nálunk egy külön enrollment image van, amit fel kell dobni a gépre.
Nálunk szerencsére nem. Semmi custom vacak nincsen. Szinte minden megy internetről VPN nélkül AzureAD SSO-val. Mint egy álom.
A Windowsban a notepad is többet ér használhatóságban mint ez a noti. egy haszna van: A nagy fényes érintésérzékeny kijelző hétvégén vidéken jól kezelhető fekve az ágyban netezésre filmnézésre.
[ Szerkesztve ]
-
martonx
veterán
válasz joysefke #9435 üzenetére
Jaj, ne is mondd, most tárgyalok épp egy céggel, akikhez lehet átmennék, és mindenképpen laptopot akarnak adni, én pedig mindenképpen asztali gépet szeretnék (az nekem nem baj, ha adnak laptopot IS).
Itthonról Ryzen 5 3600-on dolgozok PCIe4-es SSD-vel, tuning ramokkal. Ezt a gépet összevetni a régi céges i7-6700, SATA SSD-vel, háááát ég és föld.
Nem értem miért kell a cégeknek úgy tenniük, mintha csak laptopról lehetne rugalmas (home office és irodai, mikor hogy) munkát végezni.Én kérek elnézést!
-
Flashback
addikt
válasz Alexios #9438 üzenetére
Kösz ezt kerestem
Ez a struct egy globális változó. Van ilyenből még 2-3 darabom és mindegyikkel kb ua. kell csinálom.
joysefke
Egy kicsit speciális az eset. Ezek a structok speciális "listák" egy adatbázisból olvasok bele. Majd bizonyos függvények listázzák és a structban van eltárolva hogy a GUI-n éppen hol tart a lista. Ezeket az index paramétereket módosítom.
Lehetne máshogy felépíteni?
Jelenleg ez a szerkezete:public struct myCustomList
{
public string listName;
public List<Items> items;
public int onePageElement;
public string actState;
public int ListIndex;
public int pages;
public int actpage;
public string title;
}[ Szerkesztve ]
profi gőzállomás eladó - Bocs nincs hosszú ö, ü és néha az á is ä :)
-
dqdb
nagyúr
válasz Flashback #9447 üzenetére
A struct ugyanúgy bővíthető metódusokkal, ez nem C, C#-ban a struct mást jelent, mint C-ben. A fenti linkemen a mikor használj structot class helyett listában négyből három feltételt nem teljesít a kódod:
* It logically represents a single value, similar to primitive types (int, double, etc.).
* It has an instance size under 16 bytes.
* It is immutable.tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek
-
joysefke
veterán
válasz Flashback #9445 üzenetére
Ezt Databindinggal és ObservableCollectionnel szokás megoldani, illetve amikor a user a GUI-n a lista aljára ér, akkor ott keletkezhet egy event amire feliratkozhat a kódod, arra reakcióként pedig betöltheted a következő oldalt (hozzáadod az ObservableCollection-höz, a databinding pedig onnantól elintézi a többit) mondjuk Xamarin.forms-ban ez lenne.
Gondolom oka van hogy nálad így lett megoldva...
[ Szerkesztve ]
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest