Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem c# překočení v listboxu

Prosím potřeboval bych docílit toho, že když bude zaškrtlý radiobutton "rb_student" a stisknu tlačítko předchozí, tak mi to bude vždy procházet pouze mezi studenty, čili když mezi nimi bude učitel, tak toho to překočí a vyhledá to nejbližšího předchozího studenta.
Děkuji

        private void bt_predchozi_Click_1(object sender, RoutedEventArgs e)
        {
            skola.AktualniIndex--;
            osoba osoba = skola.Aktualni;

            if (rb_student.IsChecked == true)
            {
                tb_jmeno.Text = ((student)osoba).Jmeno;
                tb_prijimeni.Text = ((student)osoba).Prijmeni;
                tb_roknarozeni.Text = ((student)osoba).Rok_narozeni.ToString();
                tb_trida.Text = ((student)osoba).Trida;
            }

            else if (rb_ucitel.IsChecked == true) 
            {
                tb_jmeno.Text = ((ucitel)osoba).Jmeno;
                tb_prijimeni.Text = ((ucitel)osoba).Prijmeni;
                tb_roknarozeni.Text = ((ucitel)osoba).Rok_narozeni.ToString();
                tb_trida.Text = ((ucitel)osoba).Kde_uci;
            }
Předmět Autor Datum
tak asi neco jako: if (rb_student.IsChecked == true) { while (skola.AktualniIndex>0 and skola.Aktua… nový
gilhad 25.01.2014 20:51
gilhad
Nejlepší by bylo do třídy skola přidat metodu, která vrátí správnou osobou. Ale prasácké rešení může… poslední
Wikan 25.01.2014 20:57
Wikan

tak asi neco jako:

if (rb_student.IsChecked == true)
   { 
       while (skola.AktualniIndex>0 and skola.Aktualni.typ != typ.student) skola.AktualniIndex--;
       if (skola.AktualniIndex==0)  { 
          error('neni predchozi'); 
        } else{ 
          tb_jmeno.Text = ((student)osoba).Jmeno;
  ........

Nejlepší by bylo do třídy skola přidat metodu, která vrátí správnou osobou.
Ale prasácké rešení může být např.:

student student;
ucitel ucitel;
do
{
    skola.AktualniIndex--;
    osoba osoba = skola.Aktualni;
    bool found;
    if (rb_student.IsChecked)
    {
        student = osoba as student;
        if (student != null)
            break;
    }
    if (rb_ucitel.IsChecked)
    {
        ucitel = osoba as ucitel;
        if (ucitel != null)
            break;
    }
} while (true)

Zpět do poradny Odpovědět na původní otázku Nahoru