Avatar billede Skynet Mester
18. april 2008 - 09:22 Der er 9 kommentarer og
1 løsning

Data bound?

Hej, jeg er ved at lære data bounding, og kan ikke forstå hvorfor min kode ikke virker? 


public kalender()
        {
            InitializeComponent();

              List<visdato> test = new List<visdato>();
          visdato d1 = new visdato(new DateTime(2008, 4, 23), true);
          visdato d2 = new visdato(new DateTime(2008, 4, 24), true);
          visdato d3 = new visdato(new DateTime(2008, 4, 26), true);
           
            test.Add(d1);
          test.Add(d2);
          test.Add(d3);
     
            listBox1.DataSource = test;
            listBox1.DisplayMember = PropertyDato ;
            listBox1.ValueMember = PropertyDato;


        }



---------------------------------------

min klasse visdato

public class visdato
    {
        protected DateTime dato;
        protected Boolean  status;


        public visdato(DateTime dato, Boolean  status)   
    {
            this.dato = dato;
            this.status = status;
        }

      public DateTime  PropertyDato
        {
            get { return dato; }
            set { dato = value; }
        }


    public Boolean PropertyStatus
        {
            get { return status; }
            set { status = value; }
        }


    }
}
Avatar billede aaberg Nybegynder
18. april 2008 - 12:14 #1
DisplayMember og ValueMember er af typen string.

listBox1.DisplayMember = "PropertyDato";
listBox1.ValueMember = "PropertyDato";
Avatar billede Skynet Mester
18. april 2008 - 13:07 #2
Hej tak for det, jeg har to spørgsmål, ved du hvorfor skal man angive "ValueMember"? er det ikke nok med .DisplayMember?,

og ved du hvad jeg skal gøre hvis jeg vil have PropertyDato vist i min monthCalendar?
Avatar billede Skynet Mester
18. april 2008 - 17:23 #3
Har nu læst at ValueMember er hvis man bruger "Dictionary". Nogen som kan lave data binding til en monthcalender?
Avatar billede Skynet Mester
18. april 2008 - 17:47 #4
Prøver nu med  listBox1.ValueMember = true; men den vil ikke godkende det, er det skrevet forkert?
Avatar billede aaberg Nybegynder
19. april 2008 - 21:04 #5
Når der vises noget i en ListBox, er det den property som du angiver navnet på i DisplayMember som bestemmer teksten for hver punkt i listen. Ud over dette, kan du tilknytte en Value til hver punkt i listen. Den property som skal bruges som Value, angiver du navnet på i ValueMember. Man tilknytter ofte en Value til en unik ID. Hvis du f.eks. viser en liste med kunder fra en Customer klasse, kan man sætte Value til at være CustomerID, på denne måde kan du kende forskel på to kunder med samme navn. Hvis du ikke har brug for at tilknytte en Value til hver punkt i din liste, behøver du ikke at bruge ValueMember.

DisplayMember og ValueMember er af typen "string", derfor kan du ikke skrive listBox1.ValueMember = true;. true er en værdi af typen boolean.

Det giver heller ikke mening at skrive listBox1.ValueMember = true, da ValueMember skal indeholde et navn på en metode.
Avatar billede Skynet Mester
19. april 2008 - 21:51 #6
ok, tak.

Det vil sige at jeg ikke kan have min PropertyStatus som boolsk udtryk, hvor jeg kun vælger dem som er "true", men skal gøre det som string?
Avatar billede aaberg Nybegynder
19. april 2008 - 23:39 #7
Din PropertyStatus kan godt være en boolean. Hvis PropertyStatus skal være ValueMember i liste, skriver du:

listBox1.ValueMember = "PropertyStatus";
Avatar billede Skynet Mester
20. april 2008 - 11:15 #8
men PropertyStatus kan både være true eller false, så hvordan gør jeg, så jeg kan får dem med true?
Avatar billede Skynet Mester
22. december 2010 - 18:14 #9
ok forstår det nu :) - smider du et svar
Avatar billede aaberg Nybegynder
22. december 2010 - 21:58 #10
Svar.  :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester