Diskuze: WPF - jak získat text Itemu ListBoxu/ComboBoxu?

C# .NET .NET (C# a Visual Basic) WPF - jak získat text Itemu ListBoxu/ComboBoxu? American English version English version

Avatar
ostrozan
Redaktor
Avatar
ostrozan:

Jedná se o případ, kdy text Itemu zadám jako Content v xamlu, nebo přes Collection editor

//přetypování:
(string)listBox1.SelectedItem // vyhodí vyjímku

//konverze:
 Convert.ToString(listBox1.SelectedItem)//vypíše "System.Windows....."

//metoda:
listBox1.SelectedItem.ToString() //vypíše "System.Windows....."

když ale jako Item přidám string v .cs

listBox1.Items.Add("ahoj");

pak ho taky bez problémů získám zpět použitím kteréhokoliv z výše uvedených způsobů

jenže to je při použití více třeba ComboBoxu s více položkami dost psaní a spousta řádků v .cs

 
Odpovědět 1.5.2014 23:58
Avatar
Odpovídá na ostrozan
Ondřej Štorc:

Nevím zda je to nejideálnější způsob ale funguje:

string s = listBox1.GetItemText(listBox1.SelectedItem);
Nahoru Odpovědět 2.5.2014 0:36
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Michal Žůrek (misaz):

ano totiž tam se asi ten vkládaný string převede na nějaký jiný prvek, ono jako totiž co to má vložit do XAMLu? String prostě v XAMLu celkem nijak neprezentuješ. Intelisense by si měl sám zjistit datový typ a poradit ti jaká vlastnost je ta správná. Nejspíš to bude něco jako Text, Value, Content, ...

pak by jako mělo fungovat normálně

string s = lb.selectedItem.Text;
Editováno 2.5.2014 7:01
Nahoru Odpovědět 2.5.2014 7:00
Nesnáším {}, proto se jim vyhýbám.
Avatar
ostrozan
Redaktor
Avatar
Odpovídá na Ondřej Štorc
ostrozan:

dostal jsem s ek tomu až teď a zjistil, že VS2010 nic takového jako je "GetItemText" nezná - patrně vylepšení na vyšších verzích, které mi ovšem na mém stařičkém IBM zvládajícím maximálně XPéčka nejdou nainstalovat :(

 
Nahoru Odpovědět 8.5.2014 13:23
Avatar
rwn
Člen
Avatar
Odpovídá na ostrozan
rwn:

Zkus tohle, měloby to fungovat ;)

string vysledku = ((ListBoxItem)listBox1.SelectedItem).Content.ToString();
Editováno 8.5.2014 13:45
Nahoru Odpovědět 8.5.2014 13:44
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
ostrozan
Redaktor
Avatar
ostrozan:

trochu krkolomné, ale funkční :) dík

 
Nahoru Odpovědět 8.5.2014 14:36
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na ostrozan
Jan Vargovský:

Nebo prostě napsat

string vysledek = listBox1.SelectedItem.ToString();

což, chlapi? :)

 
Nahoru Odpovědět 8.5.2014 14:43
Avatar
rwn
Člen
Avatar
Odpovídá na Jan Vargovský
rwn:

To by šlo ve WF, ale ve WPF by to připisovalo před název položky System.Window­s.Controls.Lis­tBoxItem: ;)

Nahoru Odpovědět 8.5.2014 15:11
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na rwn
Jan Vargovský:

To už pak záleží, jak tam ty data dáváš :)

 
Nahoru Odpovědět 8.5.2014 15:38
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.