ListBox SelectedItems Bindung

8

Ich möchte Listbox selectedItems an Array binden. Aber .NET wirft Ausnahme zur Laufzeit.

%Vor%

Wo d ist eine ListBox von XAML.

Ausnahme:

  

Ausgewähltes Element kann nicht gebunden werden.

Warum?

    
Polaris 29.04.2010, 10:30
quelle

5 Antworten

7

Sie können das SelectionChanged-Ereignis der ListBox abonnieren und im Handler eine Sammlung ausgewählter Elemente synchronisieren.

In diesem Beispiel wurde der Windows DataContext in seinem Konstruktor auf sich selbst (this) gesetzt. Sie können auch einfach eine logische Schicht (ViewModel, wenn Sie MVVM verwenden) aus dem Event-Handler aufrufen.

In Xaml:

%Vor%

Und im Code-Behind:

%Vor%     
Kep Amun 29.04.2010 14:08
quelle
3

Dies ist die funktionierende Lösung, wenn SelectionItemsProperty jedoch keine Änderungen an Bindungen ändert ...

Sie können ein benutzerdefiniertes Steuerelement wie folgt erstellen

%Vor%

oder in Ihrer App können Sie ein Ereignis in jeder Listbox definieren, wie unten gezeigt.

%Vor%     
Akash Kava 30.04.2010 05:46
quelle
1

ListBox.SelectedItems ist schreibgeschützt. Wolltest du stattdessen an ListBox.SelectedItem binden?

    
wpfwannabe 29.04.2010 10:38
quelle
1

Ich bin mir nicht sicher, ob ich Ihre Frage richtig verstehe oder das genaue Szenario - aber vorausgesetzt, Sie wollten eine Listbox "d" haben, die in einer anderen Listbox "MyOtherListbox" ausgewählt wurde, dann müssen Sie nur den Binding-Modus einstellen zu "einem Weg" sonst wird es einen Fehler bringen.

Sie könnten etwas wie

tun %Vor%     
Mark Pearl 29.04.2010 14:07
quelle
0

mein Trick: in XAML, verwenden Sie MultiBinding , erzwingen Sie den Konverter in Count Eigenschaft ändern (es funktioniert!).

%Vor%

Konverter:

%Vor%     
dovid 23.01.2018 13:13
quelle

Tags und Links