// Alusta pohjapiirros salin mukaan. Alusta pohjapiirros olisi kuvaavampi nimi // public void AlustaSali(Elokuvasali sali) { ValitutPaikat.Clear(); _Valinnat = new Valinta[sali.Rivejä][]; Sali = sali; for (int i = 0; i < sali.Rivejä; i++) { _Valinnat[i] = new Valinta[sali.PaikkojaRivissä]; } for (int r = 0; r < sali.Rivejä; r++) { for (int s = 0; s < sali.PaikkojaRivissä; s++) { if (_Valinnat[r][s] == null) { // numerointi: ensimmäinen rivi lähinnä valkokangasta // ensimmäinen paikka valkokankaalta katsottuna vasemmalla // // kommentoitu pois peilikuva, jossa ensimmäinen paikka on // valkokankaalta katsottuna oikealla // int rivi = sali.Rivejä - r; int paikka = s + 1; // peilikuva: sali.PaikkojaRivissä - s _Valinnat[r][s] = new Valinta(sali, sali.IstumapaikkaNro(rivi, paikka), false); } } } Pohjapiirros.ItemsSource = _Valinnat; }
// lisää valituksi paikka p // public void Valitse(Paikka p) { Valinta v = _Valinta(p); v.Valittu = true; if (!ValitutPaikat.Contains(v.Paikka)) // huom, ref-yhtäsuuruus { ValitutPaikat.Add(v.Paikka); } }
// merkitsee listassa olevat paikat varatuiksi ja // Checkbox.IsEnabled = false kyseisille paikoille // public void MerkitseVaratut(List <Paikka> varaukset) { foreach (Paikka v in varaukset) { int rivi = Sali.Rivejä - v.Rivi; int paikka = v.PaikkaRivissä - 1; // peilikuva: Sali.PaikkojaRivissä - v.PaikkaRivissä; _Valinnat[rivi][paikka] = new Valinta(v); _Valinnat[rivi][paikka].Valittu = true; // parempi ilman? } }