Diskuze: ComboBox miznutie vyberu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Dovolím si odhadnout zcela bez prostudování detailů, jen na základě osobní zkušenosti, že problém je v tom, že máte Items jako slovník typu řetězec , objekt. Objekt ve výchozím "stringovém" podání neukáže ze sebe nic. Dejte dictionary typu string, string, anebo musíte použít na object.ToString konverzi.
No tak jsem kecal . Dobrá
zkusím druhý tip. Datacontext, tam hledejte. Při vypisování položek z Item
slovníku může být ještě nastaven na ouplně něco jinýho, a není
nulován?
Obecně bych doporučoval používat jen jednu kolekci napevno a tu plnit daty
dle potřeby (nejlépe observable). Tohle přepínání mezi různými políčky
různých sad dat, zdrojů a pod. není moc dobré.
Zkuste si taky stáhnout utilitku Snoop, co umí zobrazovat v reálném čase obsah čehokoliv v celé Vaší WPF aplikaci (Visual Studio to umí už taky -> Live Visual Tree -> Live Property Explorer). A koukněte co tam vlastně máme v tu chvíli, kdy Vám to zmizí, za data.
Chybí mi tu, jak to máte v XAML.
Se asp c# nepracuji, ale co treba uvozovky kolem stringu?
comboBox.SelectedValue == rokVydania
comboBox.SelectedValue == "rokVydania"
Pripadne zrovna si tam dej do toho ifu, ze se ma vypsat do nejakeho textboxu nebo logu, ze jsi uvnitr ifu
if (comboBox.SelectedValue == rokVydania)
{
echo "comboBox.SelectedValue == rokVydania == TRUE"; // v php
}
Tady bych řekl, že ty uvozovky být nemají, podle mě by to měla být proměnná. Nicméně v tom kódu jsem nikde nenašel její deklaraci, či hodnotu...
...zase od boku, jen jsem mrknul na to XAML. A je jisté, že <ComboBoxItem x:Name="rokVydania" Content="Roku vydania"/> funguje v kódu comboBox.SelectedValue == rokVydania ? rokVydania jako ComboBoxItem nemusí vracet Content ale úplně něco jinýho, nebo to máte odzkoušené? Nemělo by bejt spíš comboBox.SelectedValue == rokVydania.Name ? Defaultně totiž asi vrací .Content.
Michal Štěpánek - presne, nenasel jsem definici.
V JS bych to napsal
sel1 = form['ComboBox']; // (xaml) ComboBox x:Name="comboBox"
value1 = sel1.options[sel1.selectedIndex]
if (value1=='rokVydania') {...} // (xaml) <ComboBoxItem x:Name="rokVydania" Content="Roku vydania"/>
Cili, podle xamlu jsem to asi tipnul spravne, "rokVydania" je value optionu.
Ale ASP fakt nedelam
Jakoze, on chce, kdyz v selectu1 zvolu hodnotu, aby se prepsaly hodnoty ve
druhem selectu. Takze, logicky bych porovnaval value prvniho.
comboBox.SelectedValue == rokVydania bez problemu funguje
Funguje jako, ze kdyz dovnitr podminky dal print nebo logovani nebo aby se
neco zobrazilo na obrazovku?
Nebo funguje, jakoze to prekladac zkousl? Pro prekladac je to samozrejme ok.
prom1==prom2. Ale, podle mne, by to melo delat neco jineho, nez chces ty.
Muzu se mylit, rikam, s asp nedelam. Jenom mi to prijde divne, z celeho toho
kodu Ten zbytek, uvnitr ifu
vypada funkcne.
Trochu jsem googloval a tam pouzivaji toto
List<ComboData> ListData = new List<ComboData>();
ListData.Add(new ComboData { Id = "1", Value = "One" });
ListData.Add(new ComboData { Id = "2", Value = "Two" });
ListData.Add(new ComboData { Id = "3", Value = "Three" });
ListData.Add(new ComboData { Id = "4", Value = "Four" });
ListData.Add(new ComboData { Id = "5", Value = "Five" });
cbotest.ItemsSource = ListData;
cbotest.DisplayMemberPath = "Value";
cbotest.SelectedValuePath = "Id";
dik už je to jedno ja programatorom asi nikdy nebudem to sa proste neda naučiť
Nebuď pesimista. Nemusíš být profesionálním programátorem, ale programovat se naučit můžeš. Stačí mít nějakou motivaci. Vymysli si nějaký prográmek, který by ti mohl být k něčemu užitečný a pak to programování, resp. učení půjde mnohem lépe...
Zobrazeno 13 zpráv z 13.