Announcement

Collapse
No announcement yet.

WPF Checkbox in Listbox

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • WPF Checkbox in Listbox

    Hallo!

    Ich habe eine Listbox mit einigen Textblöcken, einer CheckBox und einem Button. Bei Klick auf eines der Textblöcken wird der entsprechende Eintrag wie gewünscht selctiert. Bei Klick auf die CheckBox oder den Button nicht. Es wird zwar die Checkbox abgehackt, aber die Zeile wird nicht selektiert. Könnt ihr mir sagen wie ich die Listbox dazu bringe den Eintrag bei Klick auf Button oder Checkbox auch zu selektieren?

    Danke im Vorraus

    MfG, Flo
    Die Taschenlampe!

    Die perfekte Taschenlampe für Ihr Windows Phone!

    - Die APP steuert die echte Blitz-LED an und versorgt Sie mit 100% Leistung!
    - Zudem zeigt die Live-Kachel den aktuellen Akkustand des Telefons an!


    Hier gehts zu APP!

  • #2
    Lösungsansatz

    Hallo,

    wie es aussieht weiß wohl niemand die Lösung. Dieses Problem ist im Internet auch etwas verbreitet...
    Die einzige Lösung ist eben die, die CheckBox komplett an das selektierte Item zu binden. Leider wird sie dann wieder UnSelected wenn ein anderes Item markiert wird..... Bin für jede Lösung offen.

    Nun aber eine Möglichkeit: Wenn man mal kurz auf XAML verzichtet und C# zum Einsatz bringt, sieht eine mögliche Lösung so aus: (Ich arbeite mit einer Datenbank, an die die Listbox gebunden ist. Dies zur Info)

    XAML:
    Code:
    <CheckBox  Name="Check"  Tag="{Binding Path=ID}" Click="Markiere_Zeile"  />
    C#
    Code:
     private void Markiere_Zeile(object sender, RoutedEventArgs e)
            {
                CheckBox box = (CheckBox)sender;
    
                for (int i = 0; i < listbox_artikel.Items.Count; i++)
                {
                    artikel art = (artikel)listbox_artikel.Items[i];
                 
                        if (art.artikel_nr == box.Tag.ToString())
                        {
                            MessageBox.Show("Gefunden, " + box.Tag + "in Zeile:" + (i+1));
                            if (listbox_artikel.SelectedIndex != i)
                            {
                                MessageBox.Show("Falscher Index. Setze neu");
                                listbox_artikel.SelectedIndex = i;
    
                                break;
                            }
                            else
                            {
                                MessageBox.Show("Index bereits korrekt");
                            }
                        }
                }
            }
    Nachdem der Click auf eine CheckBox erfolgt, wird die Zeile in der sie sich befindet selektiert. Zusätzlich wird noch überprüft ob nicht schon die Korrekte Zeile Markiert ist. Evtl. Flimmern wird somit vermieden!

    Falls Ihr eine bessere Lösung, oder gar eine rein in XAML-geschriebene Lösung habt, gerne her damit!!!

    MfG Flo
    Die Taschenlampe!

    Die perfekte Taschenlampe für Ihr Windows Phone!

    - Die APP steuert die echte Blitz-LED an und versorgt Sie mit 100% Leistung!
    - Zudem zeigt die Live-Kachel den aktuellen Akkustand des Telefons an!


    Hier gehts zu APP!

    Comment

    Working...
    X