IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Martin Vejvoda:19.7.2018 17:23

Čau, mám větší množství CheckBoxů ve StackPanelu. Všechny CheckBoxy dělají podobnou věc, takže abych nemusel mít spoustu metod typu CheckBox1_Clic­k(), tak používám StackPanel_Pre­viewMouseLeftBut­tonUp. Zde ale nastává problém, když zakšrtnu CheckBox, tak se metoda zavolá, ale CheckBox je stále ještě veden jako nezaškrtnutý, takže mi kód nefunguje. Nevíte někdo, jak to vyřešit?

Odpovědět
19.7.2018 17:23
matika > informatika
Avatar
Odpovídá na Martin Vejvoda
Neaktivní uživatel:19.7.2018 17:28

Nechceš třeba něco jako tohle?

<CheckBox Click="CheckBox_Click"/>

private void CheckBox_Click(object sender, EventArgs e) { } //EventArgs nevím přesně, které mají být

Nebo ještě radši místo <code>Click</code> si dej Checked/Unchecked.

Editováno 19.7.2018 17:29
Nahoru Odpovědět
19.7.2018 17:28
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Martin Vejvoda:19.7.2018 18:04

To jsem tam původně měl, ale já těch CheckBoxů mám 16 a přišlo mi, že to v kódu zabírá zbytečně moc místa. Takže jsem se rozhodl, že bych to rád předělal na StackPanel.

Nahoru Odpovědět
19.7.2018 18:04
matika > informatika
Avatar
Odpovídá na Martin Vejvoda
Neaktivní uživatel:19.7.2018 18:13

Stačí to pro všechny dohromady, nemusíš mít každý zvlášť.

<CheckBox Click="CheckBox_Click"/>
<CheckBox Click="CheckBox_Click"/>
<!-- ... -->
<CheckBox Click="CheckBox_Click"/>

Pokud potřebuješ zjistit, který to byl, <code>sender</code> přece znáš.

Editováno 19.7.2018 18:14
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
19.7.2018 18:13
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Martin Vejvoda:19.7.2018 18:18

Jo jasně, díky moc, tohle mě nenapadlo.

Nahoru Odpovědět
19.7.2018 18:18
matika > informatika
Avatar
Odpovídá na Martin Vejvoda
Neaktivní uživatel:19.7.2018 18:23

A klidně je můžeš generovat v CodeBehind.

//píšu to z hlavy, možná tam bude něco špatně nebo chybět
public void MainWindow() {
        InitializeComponent();
        for (int i = 0; i < 16; i++) {
                CheckBox chB = new CheckBox;
                Click += CheckBox_Click;
                StackPanel.Children.Add(chB);
        }
}
Editováno 19.7.2018 18:23
Nahoru Odpovědět
19.7.2018 18:23
Neaktivní uživatelský účet
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 6 zpráv z 6.