2012-01-14 46 views
0

對,所以這裏的情景:作品在PC上,崩潰在Mac

我已經創建了一個名爲「DiaryPage」從畫布

inherites

我已經創建了一個名爲「DiaryControl」用戶控件類包含「DiaryPage」元素。頁面的高度,寬度等都是數據綁定像這樣:

Width="{Binding DataContext.Info.Booktype, ConverterParameter=CoverWidth, Converter={StaticResource BookTypeToDimentionsConverter}, FallbackValue=490, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType=UserControl}}" 

現在,它完美地在PC機上運行的Silverlight 5,但在Mac上運行相同的代碼會產生以下異常:

在System.Windows.Application.LoadComponent(對象部件,烏里resourceLocator)
在Life.Views.Book.Framework.DiaryControl.InitializeComponent()
在Life.Views.Book.Framework.DiaryControl..ctor()方法沒有發現:'Void System.Windows.FrameworkElement.add_DataContextChanged(System.Windows.DependencyPropertyChangedEventHandler)'。
在System.Windows.Application.LoadComponent(對象部件,烏里resourceLocator)
在Life.Views.Book.Framework.DiaryControl.InitializeComponent()
在Life.Views.Book.Framework.DiaryControl..ctor()類型'Life.Views.Book.Framework.DiaryPageControl'中與指定綁定約束匹配的構造函數的調用會引發異常。 對匹配指定綁定約束的類型'Life.Views.Book.Framework.DiaryPageControl'的構造函數的調用會引發異常。 [行:327的位置:28]以上

任何想法

[327線]對應於寬度綁定指定?

在我DiaryPage類。我已像這樣一個DataContextChanged僅聽衆:

DataContextChanged += new DependencyPropertyChangedEventHandler(DiaryPageControl_DataContextChanged); 

void DiaryPageControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) 
    { 
     if(DataContext != null && DataContext.GetType()== typeof(Page)) 
      LoadContent(); 
    } 

正如我所說的,適用於Windows魅力(測試5個人電腦),而是拋出異常Mac上(當然,在一個我試過了)

回答

0

Silverlight 應該在Mac和Windows PC上的工作方式完全一樣。這聽起來像一個錯誤。您可能需要在Microsoft Connect網站上報告。爲了解決您的即時問題,您只需要做一些探索性的工作來找到不適合您的框架部分,並避免它!

另一點...確保Mac安裝了最新的Silverlight版本,您正在使用相對較新的框架功能。

+0

我測試的mac仍然有beta運行時,並且由於某種原因,從來沒有得到「這是建立在不同版本的silverlight上,請更新」yammer,所以我認爲它已經更新。 – sLedgem 2012-01-14 09:35:20

+0

@sLedgem - 在這種情況下,您應該檢查Html中的對象標籤。您可以在其中指定最低版本的Silverlight插件。 – 2012-01-14 13:34:48