Oprettet tor. d. 23. august 2012 kl. 00:18:47

simsen
simsen (18.588 point. Point ude: 0)

Tilføj klasse til Project Data Sources

Igen sikkert helt simpelt spørgsmål - men jeg kan ikke hitte ud af'et lige nu :-)

Jeg er kommet så langt i min bingo projekt, at jeg har lavet mig en klasse Cards, den skal jeg nu have tilføjet til projektets data source. Dette aner jeg så ikke hvordan man gør - jeg har altid brugt databaser.

Det han konkret skriver er følgende:

•Add the Card class to Project Data Sources.
•Associate the dataCardView control with the Card data source. (jeg har lavet et gridview til dataCardView)

Jeg har lavet klssen Card i samme projekt som selve programmet, hvis det er en info I skal bruge til noget.

Men konkret, hvordan får jeg tilføjet klassen så den automatisk genererer bingo tallene?

mvh
simsen :-)

Skrevet tor. d. 23. august 2012 kl. 00:45:57| #1

buzzzz
buzzzz (53.598 point)
ifyoudo.net
Tror der mangler en del kontekst ... hvad guide følger du?

Men det er måske en ObjectDataSource der beskrives.

Skrevet tor. d. 23. august 2012 kl. 10:31:33| #2

simsen
simsen (18.588 point)
Hej buzzzz

Det jeg følger er nedenviste link:

http://ism3232.coba.usf.edu/ (...)

Det er næsten helt mod slutningen - jeg har lavet de 3 klasser og smidt et DataGridView på min form - nu mangler jeg så at koble det jeg har lavet i Card klassen sammen med DataGridViewet.

Skrevet tor. d. 23. august 2012 kl. 11:12:19| #3

simsen
simsen (18.588 point)
Jeg tror så ikke længere det er i bindingen den er galt men et eller andet i koden, når jeg genererer kortet. Den skriver nemlig 0 i alle felter undtagen den midterste.

Og det er i GenerateCard (jeg tror) den gør noget forkert. Mere specifikt i loopet hvor jeg genererer værdierne i en for loop:

//Generating column values
            for (int nC = 0; nC < 5; nC++)
            {
                Cell[] col = GenerateCol(rand);
                for (int nR = 0; nR < 5; nR++)
                {
                    col[nR].Value = nC * 15 + col[nR].Value;
                    //Her fjernes tallet i midten
                    if (nC == 2 && nR == 2)
                    {
                        this[nC, nR] = new Cell(0);
                    }
                    else
                    {
                        this[nC, nR] = col[nR];
                    }
                }
            }

Men jeg kan altså ikke gennemskue, hvorfor den ikke henter værdierne ind?

Skrevet tor. d. 23. august 2012 kl. 20:47:22| #4

simsen
simsen (18.588 point)
Jeg har fundet ud af følgende (men ved stadig ikke hvorfor)
void GenerateCard(int seed)
        {
            Random rand = new Random(seed);
            Row[] rows = new Row[5];
            for (int i = 0; i < 5; i++)
            {
                rows[i] = new Row();
            }

            AddRange(rows);

            //Generating column values
            for (int nC = 0; nC < 5; nC++)
            {
                Cell[] col = GenerateCol(rand); //værdi 7 for kolonne 0
                for (int nR = 0; nR < 5; nR++)
                {
                    col[nR].Value = (nC * 15) + col[nR].Value; //col[nR].Value har værdien 7

                    this[nC, nR] = col[nR]; //nC = 0 nR = 0

                    string test = string.Empty;
                }
            }
        }

Som I kan se så har col værdien 7 for kolonne 0 og nu går jeg så ind i for løkken for at smide den korrekt på plads

col[nR].Value har værdien 7 men når jeg så når til næste linje får den værdien 0 - og det er det jeg slet og ret ikke fatter.

Jeg smider lige koden for hele Card og håber I gider hjælpe :-)

public class Card : List<Row>
    {
        //Two-element indexer access to cell values within the card
        Cell this[int col, int row]
        {
            get
            {
                if (row >= 5 || row < 0)
                {
                    throw new Exception("Invalid row column combination");
                }
                return this[row][col];
            }
            set
            {
                if (row >= 5 || row < 0)
                {
                    throw new Exception("Invalid row column combination");
                }
                this[row][col] = value;
            }
        }
        Cell this[string letter, int row]
        {
            get
            {
                if (row >= 5 || row < 0)
                {
                    throw new Exception("Invalid row column combination");
                }
                return this[row][letter];
            }
            set
            {
                if (row >= 5 || row < 0)
                {
                    throw new Exception("Invalid row column combination");
                }
                this[row][letter] = value;
            }
        }
        //Constructor variations
        public Card()
        {
            Random rand = new Random();
            GenerateCard(rand.Next());
        }
        public Card(int seed)
        {
            GenerateCard(seed);
        }
        public Card(string key)
        {
            int seed = key.GetHashCode();
            GenerateCard(seed);
        }

        static Cell[] GenerateCol(Random rand)
        {
            Cell[] col = new Cell[5];
            List<int> available = new List<int>();

            //Create an array with elements 1 through 15
            for (int i = 1; i <= 15; i++)
            {
                available.Add(i);
            }
            for (int i = 0; i < 5; i++)
            {
                int Max = available.Count;
                int coeff = rand.Next(Max);
                col[i] = new Cell(available[coeff]);
                available.RemoveAt(coeff);
            }

            return col;
        }

        void GenerateCard(int seed)
        {
            Random rand = new Random(seed);
            Row[] rows = new Row[5];
            for (int i = 0; i < 5; i++)
            {
                rows[i] = new Row();
            }

            AddRange(rows);

            //Generating column values
            for (int nC = 0; nC < 5; nC++)
            {
                Cell[] col = GenerateCol(rand); //værdi 7 for kolonne 0
                for (int nR = 0; nR < 5; nR++)
                {
                    col[nR].Value = (nC * 15) + col[nR].Value; //col[nR].Value har værdien 7

                    this[nC, nR] = col[nR]; //nC = 0 nR = 0

                    string test = string.Empty;
                }
            }
        }

        public bool Call(int nVal)
        {
            int Col = (nVal - 1) / 15;
            for (int i = 0; i < 5; i++)
            {
                Cell cell = this[Col, i];
                if (cell.Value == nVal)
                {
                    cell.Selected = true;
                    return true;
                }
            }
            return false;
        }

        public bool Select(int col, int row)
        {
            if (row == 2 && col == 2)
            {
                return true; //Can't change free cell
            }
            Cell c = this[col, row];
            c.Selected = !c.Selected;
            return c.Selected;
        }

        public bool Bingo()
        {
            //Test for rows
            for (int row = 0; row < 5; row++)
            {
                int col;
                for (col = 0; col < 5; col++)
                {
                    if (!this[col, row].Selected)
                        break;
                }
                if (col == 5)
                {
                    return true;
                }
            }

            //Test for columns
            for (int col = 0; col < 5; col++)
            {
                int row;
                for (row = 0; row < 5; row++)
                {
                    if (!this[col, row].Selected)
                        break;
                }
                if (row == 5) return true;
            }

            //Test for backslash diagonal //Ændres til loop
            if (this[0,0].Selected && this[1,1].Selected && this[3,3].Selected && this[4,4].Selected)
            {
                return true;
            }

            //Test for slash diagonal  //Ændres til loop
            if (this[0, 4].Selected && this[1, 3].Selected && this[3, 1].Selected && this[4, 0].Selected)
            {
                return true;
            }

            return false;
        }
    }

Skrevet fre. d. 14. september 2012 kl. 13:18:38| #5

simsen
simsen (18.588 point)
Lukker - fandt aldrig ud af det :-)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Redigere appconfig settings fra web.config i runtime

Oprettet den 22. maj 2013 kl. 14.41
lasserasch giver 60 point for svar | Giv et svar »

Extension methods med constraint på interface

Oprettet den 18. maj 2013 kl. 19.26
CodingJoe giver 30 point for svar | Giv et svar »

Kopiere et objekt uden at få referencer med.

Oprettet den 16. maj 2013 kl. 17.51
CodingJoe giver 30 point for svar | Giv et svar »

Seneste guides

Slettet
Håndtering af tekstoversættelse i...
Parameteriseret tekstformatering i C#
C++ Historie og Programmering - Del 1







Tips & Tricks fra PC World

Teaser billede

Her er seks Google Labs-funktioner, som du skal slå til med det samme

Gmail Labs giver dig adgang til en masse smarte funktioner, som Googles ingeniører leger med i øjeblikket.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du få 1 terabyte gratis plads hos Flickr

Yahoo har relanceret sin fototjeneste Flickr med 1 terabyte gratis plads til brugernes billeder og videoer.


Nyheder fra Computerworld

Teaser billede

Galleri: Her er de vigtigste programmører

Computerhistorien har fra hulkort til JavaScript været drevet frem af mange forskellige typer programmører. Se de vigtigste typer her. Er du en af dem?


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger