質問

ここで何かボートに乗り遅れているよ、子供たち。この問題は頭をもたげ続けており、何が起こっているのかわかりません。そこで、ここにいる私の家族が助けてくれることを願っています。

Silverlight で作業しているときに、C# コードでバインディングを作成すると、アプリケーションの実行中にバインディングが保持されなくなります。xaml からの宣言バインディングは問題ないように見えますが、C# でバインディングを作成すると何か間違っています。私に欠けていることが目に見えて明らかであることを願っています。クラッシュする典型的なバインディングは次のとおりです。

TextBlock tb = new TextBlock();
Binding b = new Binding("FontSize");
b.Source = this;
tb.SetBinding(TextBlock.FontSizeProperty, b);
役に立ちましたか?

解決 2

少なくとも Silverlight 3.1 以降では、これは問題ではなくなっているようです。とにかく再現できません。

他のヒント

先ほど投稿したコードをそのまま試してみましたが、いくつかの変更を加えて正常に動作しました。問題は、SetBinding 呼び出しに使用している要素が、バインドしたいテキストブロックではないことだと思います。そのはず:

TextBlock tb = new TextBlock();
Binding b = new Binding("FontSize");
b.Source = this;
tb.SetBinding(TextBlock.FontSizeProperty, b);

また、「this」に double 型の FontSize パブリック プロパティがあることを確認してください。「this」がユーザー コントロールの場合は、継承されたメンバーが非表示にならないようにプロパティの名前を変更することをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top