簡體   English   中英

在WP7和WP8之間共享使用LongListSelector的屏幕

[英]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的情況下解決這個難題?

畢竟這是我決定實施的解決方案:

  1. 我決定包含WP7和WP8的所有視圖的庫不適合在各自平台上實際上不同的視圖。 因此,我創建了兩個有問題的視圖副本,並將它們放在各自的WP7和WP8應用程序項目中。

  2. 這在xaml中創建了一些重復 - 幸運的是,我的xamls不是很復雜 - 只是少數控件,風格。 所以我為每個頁面創建了一個樣式字典,並放在WP7項目的頁面旁邊。

  3. 我將字典文件鏈接到WP8項目中。 我為后面的代碼做了同樣的事情。

  4. 在我的xaml文件中,我將本地字典文件與這些頁面上使用的樣式相關聯:

  5. 通過這個解決方案,我實現了最少的代碼重復,所有樣式仍然在一個地方,並且唯一不同的代碼(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM