在PC上运行,在mac上崩溃

时间:2012-01-14 07:24:38

标签: silverlight

是的,所以这里是场景:

我创建了一个名为" DiaryPage"从Canvas继承

我创建了一个名为" 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(对象组件,Uri resourceLocator)上
在Life.Views.Book.Framework.DiaryControl.InitializeComponent()
at Life.Views.Book.Framework.DiaryControl..ctor()找不到方法:' Void System.Windows.FrameworkElement.add_DataContextChanged(System.Windows.DependencyPropertyChangedEventHandler)'。
在System.Windows.Application.LoadComponent(对象组件,Uri resourceLocator)
在Life.Views.Book.Framework.DiaryControl.InitializeComponent()
at 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上抛出异常(好吧,我已经尝试过的那个)

1 个答案:

答案 0 :(得分:0)

Silverlight 应该在Mac和Windows PC上的工作方式完全相同。这听起来像个错误。您可能希望在Microsoft Connect网站上进行举报。要解决您的直接问题,您只需要做一些探索性工作,找到不适合您的框架部分并避免它!

另一点......确保Mac安装了最新的Silverlight版本,你在那里使用了一个相对较新的框架功能。