Avatar
Majkel
Člen
Avatar
Majkel:

Ahoj, mám kolekci stringů, kterou potřebuji zobrazit v gridu. Nejjednodušší způsob je nabindovat kolekci na ListBox, ale

  1. nepotřebuji s těmi stringy dále nijak pracovat,
  2. ListBox si naformátuje vzhled těch stringů podle sebe (odsazení, velikost atd.)
  3. po najetí na položku se označí atd.

Chtěl jsem se tedy zeptat, jestli nejde nějak dynamicky vytvořit TextBox pro každý prvek v kolekci (počet prvků je proměnlivý, proto nemůžu vytvořit TextBoxy napevno).

Díky za rady.

 
Odpovědět 20. ledna 14:47
Avatar
Marian Benčat
Redaktor
Avatar
Marian Benčat:

ListView s templatou. http://www.wpf-tutorial.com/…em-template/

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 20. ledna 17:28
Avatar
ostrozan
Redaktor
Avatar
ostrozan:

Na formulář si v požadovaném místě vlož prázdný StackPanel, jen mu nastav orientaci na vertical a pak použij níže uvedenou metodu, které dáš jako parametr svoji kolekci stringů

private void VytvorTexboxy(List<string> ls)
{
for(int i = 0; i < ls.Count; i++;)
{
TextBox tb = new TextBox () ;
tb.Text = ls[i];
stackPanel.Children.Add(tb);
}
}

Takto můžeš dynamicky vytvořit jakékoliv kontrolky, jejichž počet dopředu neznáš

StackPanel je tu použit proto, aby se kontrolky řadily automaticky pod sebe a nemusels jim každé extra zadávat souřadnice

 
Nahoru Odpovědět  ±0 21. ledna 23:40
Avatar
Odpovídá na ostrozan
Petr Čech (czubehead):

Promiň, chtěl jsem dát plus

Nahoru Odpovědět 22. ledna 13:47
Why so serious? -Joker
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 5 zpráv z 5.