救命!数据绑定在Mac上的Silverlight中不起作用

时间:2009-04-06 08:54:39

标签: c# silverlight macos data-binding

我在Silverlight中编写了一个小applet,虽然它在Windows上工作正常但似乎在OSX上应用程序的数据绑定部分(所有这些NotifyPropertyChanged调用)都不起作用。有人知道为什么吗?我已经在Firefox和Safari下尝试安装了最新的2.0下载。

2 个答案:

答案 0 :(得分:1)

您是否尝试将remote sliverlight debugging用于Mac?我希望得到调试器设置并启用第一次机会异常可以很好地向您展示问题。

答案 1 :(得分:1)

你在Page中对模型对象实例的使用对我来说似乎很奇怪。这不是彻头彻尾的不正确,但对我来说并不常见。一些实验使我找到了一个有效的解决方案,尽管不知道首先发生的错误的原因。没有多少人直接在DataContext赋值中实例化对象,这可能是为什么这不是一个众所周知的(并且已修复!)缺陷。

  1. 从MyModel中删除DependencyObject基类。
  2. 使MyModel实例成为Page的资源,而不是直接将其实例化为DataContext。
  3. 修改Button_Click事件处理程序以加载资源,而不是命名的Page子对象。
  4. 全部完成!
  5. 工作解决方案的代码片段如下。

    Page.xaml

    <UserControl.Resources>
        <my:MyModel x:Key="TheModel"/>
    </UserControl.Resources>
    <Grid x:Name="LayoutRoot" Background="White" DataContext="{StaticResource TheModel}">
    

    Page.xaml.cs

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        ((MyModel)Resources["TheModel"]).BeginUpdateBitmap();
    }
    

    MyModel.cs

    public sealed class MyModel : INotifyPropertyChanged
    {
    

    将来还请包含您的问题的源代码。这会使这更简单。