예제 #1
0
        public static BazaDanych WczytajBaze(string lokalizacja)
        {
            BazaDanych bazaDanych = null;

            using (StreamReader sr = new StreamReader(lokalizacja, Kodowanie))
            {
                bazaDanych            = new BazaDanych();
                bazaDanych.Ustawienia = new UstawieniaBazy(sr.ReadLine(), sr.ReadLine(), sr.ReadLine(), byte.Parse(sr.ReadLine()), byte.Parse(sr.ReadLine()))
                {
                    Lokalizajca = lokalizacja
                };

                int    liczbaPytan       = int.Parse(sr.ReadLine());
                bool[] wylosowanePytania = LosujPytania(liczbaPytan, bazaDanych.Ustawienia.LiczbaPytanEgzaminacyjnych);

                for (int i = 0; i < liczbaPytan; ++i)
                {
                    if (wylosowanePytania[i])
                    {
                        Pytanie pytanie = new Pytanie(sr.ReadLine(), (TrybPytania)Enum.Parse(typeof(TrybPytania), sr.ReadLine()));
                        bazaDanych.Pytania.Add(pytanie);

                        int liczbaOdpowiedzi = int.Parse(sr.ReadLine());
                        for (int j = 0; j < liczbaOdpowiedzi; ++j)
                        {
                            pytanie.Odpowiedzi.Add(new Odpowiedz(sr.ReadLine(), Boolean.Parse(sr.ReadLine())));
                        }
                    }
                }
            }
            return(bazaDanych);
        }
예제 #2
0
        private void OdswierzOdpowiedzi(Pytanie pytanie)
        {
            var obiektyDoUsuniecia = uchwyt.Children.OfType <CheckBox>().ToArray();

            foreach (var obiektDoUsuniecia in obiektyDoUsuniecia)
            {
                uchwyt.Children.Remove(obiektDoUsuniecia);
            }

            foreach (Odpowiedz odpowiedz in pytanie.Odpowiedzi)
            {
                CheckBox checkbox = new CheckBox()
                {
                    Width     = 650,
                    IsChecked = odpowiedz.MojaOdpowiedz,
                    Margin    = new Thickness(Margin.Left, Margin.Top + 5, Margin.Right, Margin.Bottom),
                    IsEnabled = MainWindow.mainWindowObject.TrybProgramu == MainWindow.TrybyProgramu.Egzamin ? true : false,
                    Content   = new TextBlock()
                    {
                        Text         = odpowiedz.TrescOdpowiedzi,
                        FontSize     = 16,
                        TextWrapping = TextWrapping.Wrap,
                        FontFamily   = new FontFamily("Microsoft JhengHei UI Light"),
                        Foreground   = MainWindow.mainWindowObject.TrybProgramu == MainWindow.TrybyProgramu.Sprawdzie ? (odpowiedz.CzyPoprawna ? Brushes.Green : Brushes.Red) : Brushes.Black
                    }
                };

                uchwyt.Children.Add(checkbox);

                if (pytanie.TrybPytania == TrybPytania.Jednokrotne)
                {
                    checkbox.Checked += (s, args) =>
                    {
                        for (int i = 1; i < uchwyt.Children.Count; ++i)
                        {
                            CheckBox innyCheckBox = uchwyt.Children[i] as CheckBox;
                            if (innyCheckBox == s)
                            {
                                pytanie.Odpowiedzi[i - 1].MojaOdpowiedz = true;
                            }
                            else
                            {
                                innyCheckBox.IsChecked = pytanie.Odpowiedzi[i - 1].MojaOdpowiedz = false;
                            }
                        }
                    };
                    checkbox.Unchecked += (s, args) =>
                    {
                        for (int i = 1; i < uchwyt.Children.Count; ++i)
                        {
                            if (uchwyt.Children[i - 1] == s)
                            {
                                pytanie.Odpowiedzi[i - 1].MojaOdpowiedz = false;
                                break;
                            }
                        }
                    };
                }
                else
                {
                    Binding bindingPoprawnaOdpowiedz = new Binding("MojaOdpowiedz")
                    {
                        Source = odpowiedz, Mode = BindingMode.TwoWay
                    };
                    checkbox.SetBinding(CheckBox.IsCheckedProperty, bindingPoprawnaOdpowiedz);
                }
            }
        }