Laden...

WPF vs. WP7: ObservableCollection

Erstellt von DeveloperX vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.119 Views
D
DeveloperX Themenstarter:in
462 Beiträge seit 2005
vor 13 Jahren
WPF vs. WP7: ObservableCollection

Hi zusammen!

Ich möchte eine Windows Phone 7 App schreiben und parallel dazu eine WPF-Anwendung.
Nach altbewährtem Vorgehen wollte ich hierzu eine Test.Lib-Library erstellen in dem die ViewModels bzw. BusinessModels drinstecken und dann diese Library in der WP7- sowie WPF-App einbinden und auf dieses Objekte Databinding machen - sollte im Prinzip ja kein Problem sein.

Nur ist es halt so, dass ich in der Test.Lib-Library eine ObservableCollection<T> verwenden möchte.
Und nun das Problem: die beiden Apps verwenden unterschiedliche Assemblies in denen diese Klasse definiert ist (WPF: WindowsBase / WP7: System.Windows) was beim Kompilieren zu einem Fehler führt (in der WPF-App):

The type 'System.Collections.ObjectModel.ObservableCollection`1<T0>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'. <mypath>\WpfTestApp\MainWindow.xaml.cs 34 13 WpfTestApp

Wie kann ich nun die Library auf einen gemeinsamen Nenner bringen ohne für jedes der 2 Applikationen separate ViewModels (inklusive ObserableCollection) erstellen zu müssen?

LG

Edit:
Habe gerade gesehen, dass beim Kompilieren noch ein Warning kommt:
Warning 3 The project 'TestApp.Lib' cannot be referenced. The referenced project is targeted to a different framework family (Silverlight)

Also wird das was ich vorhabe wohl gar nichts funktionieren oder wie darf ich das verstehen? Wäre ja sehr schade und irgendwie unsinnig.

Wäre für Hilfe sehr dankbar 😃

Gelöschter Account
vor 13 Jahren

Wenn du für Silverlight und WPF gleichzeitig entwickeln willst, musst du einiges mit Präprozessordirektiven machen. Zusätzlich musst du sehr genau darauf aufpassen, welche assemblies du wo referenzierst. Eine aufsplittung der einzelnen Layer in separate Dll´s ist hier auch sehr ratsam.

Im Code kannst du bei den Usings die unterschiedlichen Namespaces mit dem Präprozessor auf einen Nenner bringen.

Für die Geschichte mit den Referenzen, brauchst du (denke ich) unterschiedliche Projektdateien....

D
DeveloperX Themenstarter:in
462 Beiträge seit 2005
vor 13 Jahren

Hi Jack30lena!

Danke für die Hilfe - nun klappts anscheinend.
Habe jetzt für die Library je eine Projektdatei für WP7 und eine für WPF (mit unterschiedlichen Referenzen auf die jeweiligen Standard-Assemblies) jedoch die CodeFiles nur einmalig (beim Hinzufügen eines File muss ich dann wohl das andere Projektfile entsprechend ergänzen).

Zumindest für die ObservableCollection kompiliert es fehlerfrei und läuft auch wie erwartet.

Danke nochmals!
lg