對,所以這裏的情景:作品在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上(當然,在一個我試過了)
我測試的mac仍然有beta運行時,並且由於某種原因,從來沒有得到「這是建立在不同版本的silverlight上,請更新」yammer,所以我認爲它已經更新。 – sLedgem 2012-01-14 09:35:20
@sLedgem - 在這種情況下,您應該檢查Html中的對象標籤。您可以在其中指定最低版本的Silverlight插件。 – 2012-01-14 13:34:48