Przyznaję, że nie znam zbyt dobrze C#, i w ogóle tematyka GUI, to obecnie nie moja bajka, ale chciałem spróbować stworzyć prosty zegar binarny. Wyklikałem sobie okienko, mam na nim 20 radio buttons :D. Odświeżam stan okna co 1 s. Mam czas systemu, który rozbiłem na godziny, minuty i sekundy w formacie BCD. W jaki sposób mogę teraz przełożyć wartość półbajtu na stan 4 radio buttonów?
0
1
Radiobuttony z zasady działają w ten sposób, że zaznaczając jeden odznaczany jest drugi, więc aby te Twoje radiobuttony zadziałały tak jak chcesz, muszą być np. na oddzielnych gridpanelach i wtedy wystarczy taka metoda:
void SetHour(byte hour, RadioButton rb0, RadioButton rb1, RadioButton rb2, RadioButton rb3)
{
rb0.IsChecked = (hour & 1) == 1;
rb1.IsChecked = (hour & 2) == 2;
rb2.IsChecked = (hour & 4) == 4;
rb3.IsChecked = (hour & 8) == 8;
}
Lepiej do takich celów sprawdziły by się checkboxy:
void SetHour(byte hour, CheckBox cb0, CheckBox cb1, CheckBox cb2, CheckBox cb3)
{
cb0.IsChecked = (hour & 1) == 1;
cb1.IsChecked = (hour & 2) == 2;
cb2.IsChecked = (hour & 4) == 4;
cb3.IsChecked = (hour & 8) == 8;
}