[英]Screens using LongListSelector shared between WP7 and WP8
在我的項目中,我在WP7和WP8客戶端之間共享了一個庫。 該庫包含視圖,視圖模型和其他有趣的數據。
我還想使用最新版本的Windows Phone Toolkit。
我遇到的問題是,雖然我的xaml代碼是兼容的,但我收到運行時錯誤,因為LongListSelector存在於Windows Phone Toolkit for wp7和WP8框架代碼中的不同程序集中。
在wp7中:
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
在wp8中:
xmlns:controls="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
如何在不需要為兩個平台復制我的xamls的情況下解決這個難題?
畢竟這是我決定實施的解決方案:
我決定包含WP7和WP8的所有視圖的庫不適合在各自平台上實際上不同的視圖。 因此,我創建了兩個有問題的視圖副本,並將它們放在各自的WP7和WP8應用程序項目中。
這在xaml中創建了一些重復 - 幸運的是,我的xamls不是很復雜 - 只是少數控件,風格。 所以我為每個頁面創建了一個樣式字典,並放在WP7項目的頁面旁邊。
我將字典文件鏈接到WP8項目中。 我為后面的代碼做了同樣的事情。
在我的xaml文件中,我將本地字典文件與這些頁面上使用的樣式相關聯:
通過這個解決方案,我實現了最少的代碼重復,所有樣式仍然在一個地方,並且唯一不同的代碼(XAML)放置在它真正屬於的地方。
最終的文件夾樹看起來像這樣:
Solution
|-- Common Library
| |-- Views
| |-- Page1
+-- WP7
|-- Views
|-- Page1
|-- Page1.xaml (Windows 7 specific markup)
|-- Page1.xaml.cs (code behind file)
|-- Page1.styles.xaml (common styles shared between wp7 and wp8 apps)
+-- WP8
|-- Views
|-- Page1
|-- Page1.xaml (Windows 8 specific markup)
|-- ->Page1.xaml.cs (linked from the WP7 project)
|-- ->Page1.styles.xaml (linked from the WP7 project)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.