Předvánoční Black Friday Předvánoční Black Friday
Vánoční akce! Daruj lepší budoucnost blízkým nebo sobě. Až +50 % zdarma na dárkové poukazy. Více informací
Avatar
Martin Vejvoda:19. července 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. července 17:23
matika > informatika
Avatar
Odpovídá na Martin Vejvoda
Andy Scheuchzer:19. července 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 Click si dej Checked/Unchecked.

Editováno 19. července 17:29
Nahoru Odpovědět 19. července 17:28
Člověk, co si myslí, že snědl všechnu moudrost světa, i když tomu tak není.
Avatar
Odpovídá na Andy Scheuchzer
Martin Vejvoda:19. července 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. července 18:04
matika > informatika
Avatar
Odpovídá na Martin Vejvoda
Andy Scheuchzer:19. července 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, sender přece znáš.

Editováno 19. července 18:14
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 19. července 18:13
Člověk, co si myslí, že snědl všechnu moudrost světa, i když tomu tak není.
Avatar
Odpovídá na Andy Scheuchzer
Martin Vejvoda:19. července 18:18

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

Nahoru Odpovědět 19. července 18:18
matika > informatika
Avatar
Odpovídá na Martin Vejvoda
Andy Scheuchzer:19. července 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. července 18:23
Nahoru Odpovědět 19. července 18:23
Člověk, co si myslí, že snědl všechnu moudrost světa, i když tomu tak není.
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.