WPF - Bindung eine ObservableCollection Abhängigkeit Eigenschaft in einem UserControl

Habe ich eine Kontrolle

Klasse DragGrid : Grid
{
...
}

welche erbt von der ursprünglichen raster und ermöglicht ziehen und ändern der Größe Ihrer untergeordneten Elemente.
Ich muss zum binden eines benutzerdefinierten DP benannt WorkItemsProperty eine observable-collection von Typ WorkItem (implementiert INotifyPropertyChanged). Jedes element im raster gebunden ist, zu einem sammelelement.

Immer, wenn der Benutzer fügt ein neues Element dynamisch zur Laufzeit (die posten können in XAML deklariert werden!), oder löscht ein Element aus der Auflistung, die WorkItems DP auf der DragGrid aktualisiert werden soll, und die Kinder in der Tabelle (wo jedes Kind steht ein WorkItem Sammlung Element).

Meine Frage ist, wie kommt der DP Benachrichtigen Sie die Kontrolle über das Kind-element in das raster muss entfernt, geändert ('change' bedeutet, dass der Benutzer ein element gezogen oder Größe mit der Maus) oder Hinzugefügt, und wie würde ich erkennen, welche eines der vorhandenen Kinder ist das, was muss gelöscht oder geändert werden.
Ich verstehe, dass dies ist, wo die DependencyPropertyChangedCallback kommt. Aber, dass nur aufgerufen wird, wenn die DP-Eigenschaft festgelegt ist neu, nicht wenn etwas in der Sammlung-änderungen (wie add, remove-item). Also am Ende, hat die DragGrid Kontrolle irgendwie, die Sie abonnieren müssen, um das CollectionChanged-Ereignis? An welchem Punkt würde ich Haken der event-handler für das?

*EDIT::
Der Grund für die Verwendung eines Rasters in der ersten Ort ist, denn ich möchte in der Lage sein, um die Aufrechterhaltung eines minimalen delta für, wenn der Benutzer oder die Größe des Steuerelements in der Startaufstellung. Eine Steuerung stellt eine Zeit-Spanne, und jede grid-Spalte repräsentiert 15min (das ist der minimale Wert). Tun dies in einer Leinwand mit den Daumen war schwierig und fehlerhaft. Die Implementierung eines DragGrid gelöst meine Benutzer-Interaktions-Probleme. Auch eine Leinwand ist nicht skalierbar, so dass die Zeitspannen, müsste neu berechnet, die ganze Zeit. Mit dem Raster habe ich nicht das problem, da die Spalten, die mir die Zeit egal, die Größe.**

InformationsquelleAutor John | 2010-05-05
Schreibe einen Kommentar