2013-08-30 13 views
6

Buduję witrynę ASP.NET C# i mam listę rozwijaną, którą wiążę do listy obiektów, które utworzyłem . Kod, który wiąże się z dropdownlist wygląda następująco:"myObject" nie zawiera właściwości o nazwie "ID" (nie literówka).

protected void PopulateDropdownWithObjects(DropDownList dropdownlist, List<myObject>() myObjects) 
{ 
    dropdownlist.DataValueField = "ID"; 
    dropdownlist.DataTextField = "Name"; 
    dropdownlist.DataSource = myObjects; // my code fails here 
    dropdownlist.DataBind(); 
} 

Jednak, gdy uderza 3. linia wewnątrz metody, jest wyjątek:

DataBinding: 'myObject' does not contain a property with the name 'ID'. 

Mogę jednak wyraźnie zobaczyć myObject. wartość identyfikatora podczas debugować: mogę do niego dostęp w okienku bezpośrednim, to jest publiczna, to nie jest pusty, a ja orkisz to poprawnie i z odpowiednim przypadku:

public class myObject 
{ 
    public int ID; // see? "ID" is right here! 
    public string Name; 

    public myObject(
     int id, 
     string name 
     ) 
    { 
     this.ID = id; 
     this.Name = name; 
    } 
} 

Czy jest coś innego, co może powodować t jego błąd?

+5

NIE, ja nie widzę * oferta * nazwa identyfikatora. Widzę identyfikator nazwy pola. Być może musisz ponownie ocenić swoją definicję "faktu";) –

+0

Dla mnie to pytanie było o wiele jaśniejsze niż to, które "duplikuje"! – Jay1b

Odpowiedz

32

Twój kod nie zadziała, ponieważ ID jest pole, a nie nieruchomość.

Jeśli zmienisz klasę, jak pokazano poniżej, kod działa zgodnie z przeznaczeniem:

public class myObject 
{ 
    public int ID // this is now a property 
    { 
     get; 
     set; 
    } 

    public string Name 
    { 
     get; 
     set; 
    } 

    public myObject(
     int id, 
     string name 
     ) 
    { 
     this.ID = id; 
     this.Name = name; 
    } 
} 
+20

Czy mówisz do siebie w drugiej osobie? –

+0

@GarrisonNeely Tak, dlaczego ktokolwiek [kiedykolwiek] (http://stackoverflow.com/questions/3390896/need-to-transform-a-rectangles-color-in-windows-phone-7) używa "ty" podczas odpowiadania ich [własna] (http://stackoverflow.com/questions/7920579/efficiently-propagating-interface-changes-in-visual-studio) post? [;)] (http://data.stackexchange.com/stackoverflow/query/133843) –

+1

Stalker. Moje odpowiedzi używają "ty" zamiast "jeden". Ta odpowiedź nie używa "ty" w ten sposób. Zwykle użytkownik odpowiadający na własne pytanie potwierdzi to w pewien sposób. –

Powiązane problemy