3 Stimmen

Programmatisch Elemente dem Ressourcenwörterbuch hinzufügen oder entfernen

Ich bin gerade neu in WPF und plane, eine ListBox zu verwenden, um kürzlich geöffnete oder geschlossene Elemente zu generieren. Jedes Mal, wenn eine Datei geöffnet wird, wird sie dauerhaft in einem Ressourcenwörterbuch vom Typ Listbox-Element hinzugefügt.

Andererseits gibt es neben dem Listbox-Element einen Button, um den Link zu entfernen.

Ist das möglich?

6voto

bitbonk Punkte 47246

ResourceDictionary ist ein IDictionary. Sie können den Indexer verwenden, um Elemente hinzuzufügen/zu überschreiben.

myResourceDictionary["somekey"] = someObject;

Sie können auch die Methoden Add() und Remove() verwenden.

In Ihrem Szenario würde ich empfehlen, stattdessen eine ObservableCollection zu verwenden und Ihre Listbox darauf zu binden.

0voto

Dan Puzey Punkte 32863

Dies ist tatsächlich möglich und zusätzlich zu bitbonks Antwort würde ich sagen:

Sie möchten wahrscheinlich keine ObservableCollection mit ListBoxItems haben. ListBoxItem ist eine Klasse, die WPF für die Darstellung verwendet, und Sie würden diese normalerweise nicht selbst erstellen. Wenn Sie Ihre Datenquelle zu einer Sammlung von (zum Beispiel) FileInfo-Objekten machen, können Sie Daten Vorlagen verwenden, um das Aussehen dieser Elemente in der Liste nach Belieben zu gestalten. Das hat auch den Vorteil, dass Sie keinen Code schreiben müssen, um Ihre Datensätze in eine separate Klasse nur für Anzeigezwecke zu transformieren.

(Sie würden wahrscheinlich Ihren eigenen Daten-/Modelltyp anstelle von FileInfo verwenden, aber ich kenne nicht genug über Ihre Lösung, um einen vorzuschlagen.)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X