Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

List box typeahead - setovan DataSource ...

[es] :: .NET :: .NET Desktop razvoj :: List box typeahead - setovan DataSource ...

[ Pregleda: 1209 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
92.244.132.*



+3 Profil

icon List box typeahead - setovan DataSource ...04.04.2011. u 13:58 - pre 158 meseci
Evo cime se od jutros bavim (na moju zalost - a mislio sam da ce to biti trivijalna stvar): htio bih da realizujem typeahead za jedan listbox. Ono sto treba odmah da napomenem jeste da je property DataSource, od pomenutog listbox-a, setovan - to jest, takva je logika programa da se listboks popunjava iz BindingSource-a. E, ono sto ja nisam znao jeste da se u tom slucaju ne mogu dohvatiti vrijednosti stavki (items) u listboksu. Broj stavki (Items.Count) radi, ali nesto ovako: string stavka = listBoksXY.Items.ToString(), ne radi (vraca vrijednost: System.Data.DataRawView). Objasnjenje (nadjeno na Internetu): posto stavke nisu dodane preko funkcije Items.Add(stavkaXY), njima se i ne moze prici, nego treba pristupati stavkama preko DataSource propertija, odnosno, u samom dataSource-u.

Dalje, ja sam, dok nisam saznao da se vrijednosti stavki listboksa ne mogu dobiti, napravio kontrolu: MyListBoks, jasno, izvedenu iz ListBox i, da ne duzim, nasao primjer na Internetu, koji radi typeahed, ali sa stavkama preko Items (znaci, koristi: listBoksXY.Items.ToString()). Znaci, da bih primijenio ovo rjesenje, trebao bih da ovoj klasi, MyListBoks, proslijedim i DataSource (recimo, kao parametar), a to mi se bas i ne radi.

Pitanje: ima li neko ideju kako ovo (elegantno) rijesiti? Ima li neki nacin da se paralelno koriste i Items i DataSource (pokusao sam da, posto setujem DataSource, setujem i Items, ali dolazi do runtime greske).

Hvala unaprijed ...


Programming is fun, but writing good software is hard ...
 
Odgovor na temu

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
92.244.132.*



+3 Profil

icon Re: List box typeahead - setovan DataSource ...04.04.2011. u 14:17 - pre 158 meseci
Evo sto sam uspio da napravim (rjesenje radi):

DataSet ooo;
if (this.DataSource != null) // ako je setovan datasource
{
ooo = (DataSet)(((BindingSource)this.DataSource).DataSource); // ako je setovan DataSource, onda mora da se pristupi poljima u DataSource-u
for (int index = 0; index < Items.Count; index++)
{
string itemText = ooo.Tables[0].Rows[index].ItemArray.GetValue(KOLONA_IME).ToString();
if (itemText.StartsWith(selectionText, StringComparison.OrdinalIgnoreCase))
{
if (index != SelectedIndex)
SelectedIndex = index;
break;
}
}
}
else
{

for (int index = 0; index < Items.Count; index++)
{
string itemText = Items[index].ToString().ToLower();
if (itemText.StartsWith(selectionText,StringComparison.OrdinalIgnoreCase))
{
if (index != SelectedIndex)
SelectedIndex = index;
break;
}
}
}

Ako neko ima drugi predlog, rado cu ga procitati ...
Programming is fun, but writing good software is hard ...
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: List box typeahead - setovan DataSource ...

[ Pregleda: 1209 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.