2009-04-06 4 views
0

Silverlightで小さなappletを書きましたが、Windows上で正常に動作しますが、OSXではアプリケーションのデータバインディング部分(これらのすべてがNotifyPropertyChanged呼び出し)が機能しません。誰がなぜこれが分かっていますか?私は最新の2.0ダウンロードがインストールされたFirefoxとSafariの両方で試しました。ヘルプ! Silverlightでデータバインディングが動作しない

+0

ソースを提供できますか? –

答えて

1

ページのモデルオブジェクトインスタンスの使用は、私にとってすぐに奇妙に思えました。それはまったく間違っているのではなく、私にとっては珍しいことです。最初に起こったエラーの原因を知らなくても、実践的な解決に導かれた実験もありました。多くの人がDataContextの代入でオブジェクトを直接インスタンス化することはあまりありません。なぜなら、これはよく知られている(そして修正された!)欠陥ではないのかもしれません。

  1. MyModelからDependencyObject基本クラスを削除します。
  2. MyModelインスタンスを直接DataContextにインスタンス化するのではなく、Pageのリソースにします。
  3. 名前付きPageの子オブジェクトではなく、リソースをロードするようにButton_Clickイベントハンドラを変更します。
  4. すべて完了!

解決策のコードスニペットが続きます。

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 
{ 

また、将来的にはあなたの質問でソースコードを含めてください。これはかなり簡単になりました。

1

Macにremotesliverlightdebuggingを試しましたか?私は、デバッガのセットアップを取得し、第1チャンスの例外を有効にすると、あなたに問題を示す良いショットを期待したいと思います。

関連する問題