Pouze tento týden sleva až 80 % na e-learning týkající se Swift
Využij akce až 80 % zdarma při nákupu e-learningu. Více informací.

Diskuze: Jak mohu předat hodnoty z příkazu IF xaml.cs do cs. v aplikaci WPF?

Aktivity
Avatar
David Mrázek:26. dubna 13:24

Ahoj, snažím se dostat hodnotu z příkazu IF-statement do jiné třídy.

namespace GameofMath
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if ( scitani.IsChecked.Value == true && nizsi.IsChecked.Value == true)
            {
                hra lvl = new hra();

                lvl.Show();
                this.Close();
            }
            if ( scitani.IsChecked.Value == true &&  vyssi.IsChecked.Value == true)
            {
                hra lvl = new hra();
                Vlastnosti vlastnosti = new Vlastnosti();
                lvl.Show();
                this.Close();
            }
            else if ( odcitani.IsChecked.Value == true &&  nizsi.IsChecked.Value == true)
            {
                hra lvl = new hra();
                Vlastnosti vlastnosti = new Vlastnosti();
                lvl.Show();
                this.Close();
            }
            else if ( odcitani.IsChecked.Value == true &&  vyssi.IsChecked.Value == true)
            {

                hra lvl = new hra();
                Vlastnosti vlastnosti = new Vlastnosti();

                lvl.Show();
                this.Close();
            }
            else if ( nasobeni.IsChecked.Value == true && nizsi.IsChecked.Value == true)
            {
                hra lvl = new hra();
                Vlastnosti vlastnosti = new Vlastnosti();
                lvl.Show();
                this.Close();
            }
            else if ( nasobeni.IsChecked.Value == true&& vyssi.IsChecked.Value == true)
            {
                hra lvl = new hra();
                Vlastnosti vlastnosti = new Vlastnosti();
                lvl.Show();
                this.Close();
            }
            else if (deleni.IsChecked.Value == true && nizsi.IsChecked.Value == true)
            {
                hra lvl = new hra();
                Vlastnosti vlastnosti = new Vlastnosti();
                lvl.Show();
                this.Close();
            }
            else if ( deleni.IsChecked.Value == true &&  vyssi.IsChecked.Value == true)
            {
                hra lvl = new hra();

                Vlastnosti vlastnosti = new Vlastnosti();
                lvl.Show();
                this.Close();
            }
            else if (scitani.IsChecked.Value == false &&  odcitani.IsChecked.Value == false &&  nasobeni.IsChecked.Value == false &&  deleni.IsChecked.Value == false)
            {
                MessageBox.Show("Musíš zvolit, jednu z početních operací!");

            }
            else if ( nizsi.IsChecked.Value == false && vyssi.IsChecked.Value == false)
            {
                MessageBox.Show("Musíš zvolit, jednu z úrovní!");
            }
            else
            {
                MessageBox.Show("Musíš zvolit, jednu z početních operací a úrovní!");
            }
        }

    }
}

zde jsou vidět mé požadavky a podle toho co si uživatel vybere za možnosti, by se ta hodnota měla poslat do třídy Vlastnosti.cs kde by se uložila a já jí dále mohl použit v dalším xaml.cs okně (hra.xaml.cs)

Podle toho jaká byla hodnota vybrána by se spustil režim hry

Zkusil jsem: zde je vidět hra.xaml.cs a jak bych to chtěl použít

namespace GameofMath
{
    /// <summary>
    /// Interakční logika pro hra.xaml
    /// </summary>
    public partial class hra : Window
    {
        Stopwatch mt = new Stopwatch();
        DispatcherTimer posunTimer = new DispatcherTimer();
        decimal trvani = new decimal();
        int suma = new int();
        public hra()
        {
            InitializeComponent();
            posunTimer.Tick += posunTimer_Tick;
            posunTimer.Interval = TimeSpan.FromSeconds(1);

        }
        public void Window_Loaded(object sender, RoutedEventArgs e)
        {

            vysledekHrac.Focus();
            suma++;
            pocetPrikladu.Text = suma.ToString();
            mt.Start();
            timer.Value = 0;
            posunTimer.Start();
            Random prvni = new Random();
            Random druhy = new Random();
            int maxprvni = 10;
            int maxdruhy = 10;
            int prvnic = prvni.Next(1, maxprvni);
            int druhyc = druhy.Next(2, maxdruhy);

            if (Vlastnosti.Class1.scitani.IsChecked.Value == true)
            {
                znamenko.Text = "-";

            }
            if (odcitani.IsChecked.Value == true)
            {
                znamenko.Text = "-";

            }
            if (nasobeni.IsChecked.Value == true)
            {
                znamenko.Text = "*";
            }
            if (znamenko.Text == "+")
            {
                int total = (prvnic + druhyc);
                prvnit.Text = prvnic.ToString();
                druhyt.Text = druhyc.ToString();
                vysledek.Text = total.ToString();

            }
            if (znamenko.Text == "-")
            {
                int total = (prvnic - druhyc);
                prvnit.Text = prvnic.ToString();
                druhyt.Text = druhyc.ToString();
                vysledek.Text = total.ToString();

            }
            if (znamenko.Text == "*")
            {
                int total = (prvnic * druhyc);
                prvnit.Text = prvnic.ToString();
                druhyt.Text = druhyc.ToString();
                vysledek.Text = total.ToString();

            }


        }
        private void posunTimer_Tick(object sender, object e)
        {
            timer.Value += 1;
            if (timer.Value >= timer.Maximum)

            {
                posunTimer.Stop();
                hlaska.Text = "Špatně";
                poch++;
                suma++;
                pocetchyb.Text = poch.ToString();
                pocetPrikladu.Text = suma.ToString();
                timer.Value = 0;
                posunTimer.Start();
                Random prvni = new Random();
                Random druhy = new Random();
                int maxprvni = 10;
                int maxdruhy = 10;
                int prvnic = prvni.Next(1, maxprvni);
                int druhyc = druhy.Next(2, maxdruhy);
                if (znamenko.Text == "+")
                {
                    int total = (prvnic + druhyc);
                    prvnit.Text = prvnic.ToString();
                    druhyt.Text = druhyc.ToString();
                    vysledek.Text = total.ToString();

                }
                if (znamenko.Text == "-")
                {
                    int total = (prvnic - druhyc);
                    prvnit.Text = prvnic.ToString();
                    druhyt.Text = druhyc.ToString();
                    vysledek.Text = total.ToString();

                }
                if (znamenko.Text == "*")
                {
                    int total = (prvnic * druhyc);
                    prvnit.Text = prvnic.ToString();
                    druhyt.Text = druhyc.ToString();
                    vysledek.Text = total.ToString();

                }


                vysledekHrac.Text = String.Empty;

                if (poch == 4)
                {
                    mt.Stop();
                    timer.Value = 0;
                    posunTimer.Stop();
                    MessageBox.Show("Konec hry! Čas vypršel. ");
                    TimeSpan trvani = TimeSpan.FromMilliseconds(mt.ElapsedMilliseconds);
                    MessageBox.Show("Tvůj čas je " + trvani.ToString("mm\\:ss\\.ff") + "\n" + "Počet příkladů:" + pocetPrikladu.Text + "\n" + "Průměrný čas:" + trvani / suma);
                    if (!File.Exists(path))
                    {
                        StreamWriter str = File.CreateText(path);
                        str.WriteLine(trvani);
                    }
                    else if (File.Exists(path))
                    {
                        var str = new StreamWriter(path);
                        str.WriteLine(trvani);
                    }
                    this.Close();
                }
            }
        }
        private int poch;

        private void kontrola_Click(object sender, RoutedEventArgs e)
        {

            timer.Value += 1;
            posunTimer.Start();
            if (vysledekHrac.Text == vysledek.Text)
            {
                posunTimer.Stop();
                hlaska.Text = "Správně";
                suma++;
                pocetPrikladu.Text = suma.ToString();
                Random prvni = new Random();
                Random druhy = new Random();
                int maxprvni = 10;
                int maxdruhy = 10;
                int prvnic = prvni.Next(1, maxprvni);
                int druhyc = druhy.Next(2, maxdruhy);
                if (znamenko.Text == "+")
                {
                    int total = (prvnic + druhyc);
                    prvnit.Text = prvnic.ToString();
                    druhyt.Text = druhyc.ToString();
                    vysledek.Text = total.ToString();

                }
                if (znamenko.Text == "-")
                {
                    int total = (prvnic - druhyc);
                    prvnit.Text = prvnic.ToString();
                    druhyt.Text = druhyc.ToString();
                    vysledek.Text = total.ToString();

                }
                if (znamenko.Text == "*")
                {
                    int total = (prvnic * druhyc);
                    prvnit.Text = prvnic.ToString();
                    druhyt.Text = druhyc.ToString();
                    vysledek.Text = total.ToString();

                }

                vysledekHrac.Text = String.Empty;
                timer.Value = 0;
                posunTimer.Start();
            }

            else
            {
                posunTimer.Stop();
                hlaska.Text = "Špatně";
                poch++;
                suma++;
                pocetchyb.Text = poch.ToString();
                pocetPrikladu.Text = suma.ToString();
                Random prvni = new Random();
                Random druhy = new Random();
                int maxprvni = 10;
                int maxdruhy = 10;
                int prvnic = prvni.Next(1, maxprvni);
                int druhyc = druhy.Next(2, maxdruhy);
                if (znamenko.Text == "+")
                {
                    int total = (prvnic + druhyc);
                    prvnit.Text = prvnic.ToString();
                    druhyt.Text = druhyc.ToString();
                    vysledek.Text = total.ToString();

                }
                if (znamenko.Text == "-")
                {
                    int total = (prvnic - druhyc);
                    prvnit.Text = prvnic.ToString();
                    druhyt.Text = druhyc.ToString();
                    vysledek.Text = total.ToString();

                }
                if (znamenko.Text == "*")
                {
                    int total = (prvnic * druhyc);
                    prvnit.Text = prvnic.ToString();
                    druhyt.Text = druhyc.ToString();
                    vysledek.Text = total.ToString();

                }

                vysledekHrac.Text = String.Empty;
                timer.Value = 0;
                posunTimer.Start();
                if (poch == 4)
                {
                    mt.Stop();
                    timer.Value = 0;
                    posunTimer.Stop();
                    MessageBox.Show("Konec hry!");
                    konec_Click(sender, e);

                }
            }







        }
        string path = @"C:\\Žebříček.txt";
        private void konec_Click(object sender, RoutedEventArgs e)
        {
            timer.Value = 0;
            posunTimer.Stop();
            if (mt.IsRunning == true)
            {
                mt.Stop();
            }
            TimeSpan trvani = TimeSpan.FromMilliseconds(mt.ElapsedMilliseconds);
            MessageBox.Show("Tvůj čas je " + trvani.ToString("mm\\:ss\\.ff") + "\n" + "Počet příkladů: " + pocetPrikladu.Text + "\n" + "Průměrný čas: " + Math.Round(trvani.TotalSeconds / suma, 4) + " sekund");
            if (!File.Exists(path))
            {
                StreamWriter str = File.CreateText(path);
                str.WriteLine(trvani);
            }
            else if (File.Exists(path))
            {
                var str = new StreamWriter(path);
                str.WriteLine(trvani);
            }

            this.Close();
        }
    }
}

Chci docílit: takto jsem začal dělat třídu Vlastnosti.cs, kde to zkouším přes enumerátory

class Vlastnosti
    {
        public enum Operace
        {
            scitaniNiz= MainWindow
            scitaniVys,
            odcitaniNiz,
            odcitaniVys,
            nasobeniNiz,
            nasobeniVys,
            deleniNiz,
            deleniVys,

        }
        public static class Class1
        {


            static Class1()
            {

            }

        }
    }
}

Doufám, že to dává trochu smysl
Budu rád za každou radu
Děkuju

Odpovědět
26. dubna 13:24
kde je vůle, tam je cesta
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.