DB'den aldığım verileri saklamak için kullandığım birkaç özel sınıf (NTDropDown
ve NTBaseFreight
) oluşturdum. NTBaseFreight
Listesini ve NTDropDown
için 2 listeyi başlatıyorum.list.add, orijinal nesneye bir başvuru ekliyor gibi görünüyor?
başarıyla Navlunlar listesine navlunlar eklemek için List.Add
kullanabilirsiniz, ancak ben kod hata ayıklama, benim 2 açılır listeleri hep NTDropDown
aynı değerleri (I varsayarak bu bir referans olduğunu olan sadece 1 NTDropDown
içerirler sorun, ama ne yapıyorum yanlış?) Taşıyıcı ve carrier_label
"001", "MyTruckingCompany"
ve ben frt_carriers
için eğer ekstresinde bir mola koyarsanız
"001", "MyTruckingCompany"
ile, onların listesinde sadece 1 öğeyi içerecektir ...
NTDropDown
’da aynı değerler.
Kodu:
List<NTDropDown> frt_carriers = new List<NTDropDown>();
List<NTDropDown> frt_modes = new List<NTDropDown>();
List<NTBaseFreight> freights = new List<NTBaseFreight>();
NTDropDown tempDropDown = new NTDropDown();
NTBaseFreight tempFreight = new NTBaseFreight();
//....Code to grab data from the DB...removed
while (myReader.Read())
{
tempFreight = readBaseFreight((IDataRecord)myReader);
//check if the carrier and mode are in the dropdown list (add them if not)
tempDropDown.value = tempFreight.carrier;
tempDropDown.label = tempFreight.carrier_label;
if (!frt_carriers.Contains(tempDropDown)) frt_carriers.Add(tempDropDown);
tempDropDown.value = tempFreight.mode;
tempDropDown.label = tempFreight.mode_label;
if (!frt_modes.Contains(tempDropDown)) frt_modes.Add(tempDropDown);
//Add the freight to the list
freights.Add(tempFreight);
}
tamam, bunu çözdüm ... Her seferinde yeni bir NTDropDown başlatmalıyım (tempDropDown'ı tekrar tekrar kullanmayın). Yani, her zaman kullanmadan önce tempDropDown = new NTDropDrop(); Bu soruyu silmeli miyim? –
Hayır. Soruyu açık bırakın. Kendi sorunuzu çözmek herkes için hala yararlıdır. – hometoast