Diskuze: Navigace WebBrowser přes list

C# .NET .NET (C# a Visual Basic) Navigace WebBrowser přes list American English version English version

Avatar
idc
Člen
Avatar
idc:

Ahoj, dělám program ve WPF, kde mám v List<string> list uloženo několik webových adres. S těmito adresami bych chtěl provést něco takového:

private void button_Click(object sender, RoutedEventArgs e)
{
    foreach (string s in list)
    {
        thisIsWeb.Navigate(s);
        thisIsWeb.LoadCompleted += thisIsWeb_LoadCompleted;
    }
}

private void thisIsWeb_LoadCompleted(object sender, NavigationEventArgs e)
{
    WebBrowser bro = sender as WebBrowser;
    this.arrOfAdresses.Add(bro.Source.ToString());
}

arrOfAdresses by mělo správně správně obsahovat několik odlišných webových adres, ale obsahuje pouze jednou, protože ty ostatní zcela ignoruje.
Potřeboval bych tedy, abych v arrOfAdresses měl několik odlišných stránek a také bych potřeboval, aby se to vše realizovalo s ovládacím prvkem WebBrowser. Vím, že je zde asi velká většina založena na WF, avšak doufám, že mi dokážete poradit. Díky za veškeré odpovědi :)

Editováno 20.9.2013 17:55
 
Odpovědět 20.9.2013 17:54
Avatar
Paradise
Redaktor
Avatar
Paradise:

No vůbec nechápu, o co se snažíš. Mohl bys to trošku upřesnit? Jinak neměl by to být spíš URI list?

 
Nahoru Odpovědět 20.9.2013 18:15
Avatar
idc
Člen
Avatar
idc:

Dobře, zkusím to trochu upřesnit. Řekněme, že v List<string> list máme facebookové profily, které jsou dejme tomu ve tvaru:
http://www.facebook.com/jmeno.prijmeni. Každá adresa je jiná a liší se ve jménu a přijmení. Každý tento profil obsahuje dané ID, podle kterého mohu získat počet fotek, přátel atd.. Tedy, potřeboval bych se dostat na každý profil, který mám v listu a vypsat třeba počet fotek. Tohle ale mohu uskutečnit pouze s jednou adresou, ale nikoliv a polem adres(List<strin­g>). Jde o to, že to načte vždy tu poslední adresu. BTW: V tomto případě je jedno, jestli načítám přes Browser.Source = new Uri(xxx); nebo přes Browser.Naviga­te(xxx);

 
Nahoru Odpovědět 20.9.2013 18:28
Avatar
Paradise
Redaktor
Avatar
Paradise:

Tak našti jednu, ulož si co potřebuješ a pokračuj ne? Nebude také problém v tom, že ten event vytváříš v tom foreach? To je podle mě vysvětlení, proč to udělá jen s tím poslendím.

 
Nahoru Odpovědět 20.9.2013 18:36
Avatar
idc
Člen
Avatar
idc:

No nevím, jestli je problém s tím eventem. Ten event tam však musí být, protože jinak dostanu null a vyjímku.

 
Nahoru Odpovědět 20.9.2013 18:39
Avatar
Paradise
Redaktor
Avatar
Paradise:

No však ho zkus posunout před ten foreach cyklus..

 
Nahoru Odpovědět 20.9.2013 18:40
Avatar
idc
Člen
Avatar
idc:

Když ho posunu před foreach cyklus, tak mi bude k ničemu, protože přeci nebudu načítat žádnou stránku. I když jsem to zkusil, tak výsledek je stále stejný.

 
Nahoru Odpovědět 20.9.2013 18:43
Avatar
Paradise
Redaktor
Avatar
Paradise:

No ale event dopředu mít deklarovaný můžeš ne? Zkus tam hodit pár breakpointů a podle mě chybu najdeš :)

 
Nahoru Odpovědět 21.9.2013 9:38
Avatar
idc
Člen
Avatar
idc:

Nakonec jsem to udělal tak, že pokaždé, když se chci navigovat na nějakou stránku, tak jsem si vytvořil nový WebBrowser a ten poté navigoval na danou adresu a poté si zavolal event LoadCompleted. Šlape to podle mých představ :)

 
Nahoru Odpovědět 21.9.2013 11:04
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.