Ich möchte etwas tun, das ich dachte, wäre sehr einfach. Ich möchte eine generierte Entity Framework EntityCollection an ein WPF DataGrid binden. Ich möchte auch, dass dieses Raster sortierbar ist.Entity Framework 4.0 Datenbindung mit Sortierung funktioniert nicht
Ich habe alle möglichen Dinge versucht, um dies zu erreichen, einschließlich der Verwendung einer CollectionViewSource. Nichts scheint jedoch zu funktionieren. Die Verwendung einer normalen CollectionViewSource um die EntityCollection gibt mir:
'System.Windows.Data.BindingListCollectionView' view does not support sorting.
Ok ... seltsam. Ich hätte gedacht, das würde funktionieren. Als nächstes auf der CollectionViewSource, ich versuche Einstellung:
CollectionViewType="ListCollectionView"
Großartig, Sortierung funktioniert jetzt. Aber warten Sie, ich kann keine Entitäten jetzt mithilfe des Rasters hinzufügen oder entfernen, vermutlich weil ListCollectionView dies nicht mit einem Entitätsrahmenkontext unterstützt.
Also, ich denke, ich muss Ereignisse aus dem DataGrid erfassen erfassen, um Entitäten manuell aus meinem Kontext hinzufügen oder entfernen. Jetzt kann ich kein Ereignis finden, das erfasst werden kann, um ein Add zu erkennen ...!
Warum ist das so schwer? Dies sollte der Standard-Demo-Fall sein, den Microsoft hätte entwerfen sollen.
Irgendwelche Ideen?
Ja, die ListCollectionView funktioniert tatsächlich. Ich war verwirrt, weil das Hinzufügen über das Datenbinding nicht zu den "root" -Sammlungen, an die ich mich gebunden habe (z. B. myContext.Employees), hinzugefügt wurde. Ich habe mich geirrt, dass es sich um veränderliche Sammlungen handelte, obwohl sie es nicht waren, und der einzige Weg, um an meine "neuen" Entitäten zu gelangen, war der ObjectStateManager. –
Das scheint wirklich gut zu funktionieren. Es ist traurig, dass das Standard-EF-RAD-Zeug sich nicht um die Box kümmert. Denken Sie jedoch daran, dass Sie bei Verwendung von CollectionViewType mit EF4 von ListCollectionView AutoGenerateColumns auf False festlegen müssen, damit die Spalten EntityState und EntityKey nicht abgerufen werden. – Spooles