Darstellung von ineinander verschachtelten ListBoxen

  • WPF

    Darstellung von ineinander verschachtelten ListBoxen

    Hallo zusammen.

    Ich stehe grade vor einem kleinen Problem.

    Ich versuche Objekte, welche durch boolesche Algebra miteinander verknüpft sind als Liste darzustellen.
    Ich habe ein UserControl mit einer ListBox. Der ItemsSource dieser ListBox zeigt über eine Datenbindung auf eine ObservableCollection. Die ObservableCollection ist vom typ meiner Basis-Klasse. Nun gibt es mehrere Klassen, welche sich von der Basis-Klasse ableiten. Je nachdem wird über DataTemplates in der ListBox ein anderes UserControl angezeigt. Das ist soweit ja ganz einfach und funktioniert super.

    Jetzt wollte ich gerne noch Klammern hinzufügen. Eine Klammer leitet sich auch wieder von der Basis-Klasse ab. Im ViewModel einer Klammer gibt es natürlich auch wieder eine ObservableCollection vom Typ der Basis-Klasse, da in einer Klammer ja mehrere Objekte stecken können.
    Folglich wird in der Klammer wieder das UserControl mit der ListBox angezeigt.

    Und da tritt dann auch schon das Problem auf. Man kann beliebig viele Klammern ineinander verschachteln. Das funktioniert alles super. Aber man hat dann eben ListBoxen, welche ineinander verschachtelt sind. Das ist erstens extrem hässlich und zweitens brauche ich das Verhalten, dass nur ein Objekt ausgewählt ist. Wähle ich nun ein Objekt auf der zweiten Ebene aus wird automatisch auch die Klammer, welche sich auf Ebene eins befindet ausgewählt. Das ist ja ganz logisch ich interagiere ja mit einem Element innerhalb der ListBox. Die äußere ListBox kann ja nicht wissen, dass im inneren noch eine ListBox ist und deswegen keine Selektion stattfinden soll.

    Ein ItemsControl kann ich aber leider auch nicht verwenden, da dort ja gar keine Selektion möglich ist.
    Hat hier vllt. irgendjemand eine Idee wie man das umsetzen könnte?