2017-02-28 4 views
0

Ich habe eine einfache WPF ComboBox, die Aufträge/Positionen auf den Finanzmärkten anzeigt.WPF Combobox - Anzeige der Anzahl im Label

<ComboBox Name="TradeDropDown" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Top" 
      ItemsSource="{Binding Path=ActiveOrders}" 
      DisplayMemberPath="OrderLabel" 
      SelectedItem="{Binding Path=SelectedOrder, Mode=TwoWay}" IsSynchronizedWithCurrentItem="True" /> 

screenshot of dropdown

muss ich auf einen Blick sehen, wie viele Elemente in der Liste sind. Ich habe oben einen Textblock mit zusammenfassenden Informationen hinzugefügt.

Ich mag es nicht, und würde es vorziehen, die Elemente in der Dropdown-Liste wie aufgeführt haben:

(1/2) Working Short 425K 
(2/2) Filled Long 979K 

etc - und haben die 1/2 Zahlen korrekt als Elemente aus der werden aktualisieren hinzugefügt und entfernt Liste.

Die Elemente werden in einer BindingList gespeichert.

Gibt es eine einfache Möglichkeit, dies zu tun?

Antwort

0

Gibt es eine einfache Möglichkeit, dies zu tun?

eine andere Eigenschaft der Klasse hinzufügen, wo die OrderLabel Eigenschaft definiert, die eine Zeichenfolge wie „(1/2) Arbeits Short 425K“ zurück und stellen Sie die DisplayMemberPath Eigenschaft des ComboBox auf den Namen dieser Eigenschaft.

Stellen Sie sicher, dass die Klasse die Schnittstelle INotifyPropertyChanged implementiert.

Anschließend legen Sie die neue Eigenschaft auf einen neuen Wert fest und lösen das Ereignis PropertyChanged immer dann aus, wenn Sie die Beschriftung in ComboBox aktualisieren möchten.

+0

Das würde verlangen, dass sich Aufträge gegenseitig kennen. Wenn Sie ein Objekt zu einer Liste hinzufügen, hat das Objekt keine Ahnung, dass es sich in einer Liste befindet, an welcher Position es sich in der Liste befindet oder wie viele andere Elemente in einer Liste enthalten sind. Wenn ich (1/2) sage, meine ich "eins von zwei". – reach4thelasers