2009-04-01 4 views
0

基本的に値を1ずつ増減する小さなusercontrolがあります。ユーザーコントロールには、2つのボタン(1つは加算し、もう1つは減算する)と、値を表示するために使用するtextBlockがあります。Silverlightは別のユーザーコントロールでtextBlockをバインドします

私はこのusercontrolの複数のインスタンスを別のusercontrolに持っていますので、INotifyPropertyChangedインターフェイスを持つデータクラスの値を操作できます。私の質問は、どのように私はそれをinstansiated usercontrolにusercontrolを変更する値のtextBlockをdatabindできますか?

答えて

4

まず、Silverlight 2では要素から要素へのバインディングがサポートされていないとします。その機能はSilverlight 3に追加されました(今ベータ版)。あなたがコントロールを結びつけたいとは思っていません。あなたがNumericUpDownコントロールを作成しようとしているように思えますし、実際にはインクリメントとデクリメントを行っているコードがいくつかあるかもしれません。

この場合、クリックハンドラを登録して、インクリメントまたはデクリメントのようなモデル上のメソッドを呼び出すことができます。モデルは現在の値のプロパティを公開することができ、そのプロパティはテキストボックスにバインドされています。

実際にNumericUpDownコントロールを作成しようとしている場合は、Silverlight Toolkitをチェックアウトすることができます。ツールキットにはすでにこのコントロールが含まれており、データバインドもサポートされています。

NumericUpDownコントロールhereをチェックし、ツールキットhereをダウンロードしてください。

最後に、子コントロールから親コントロールへのバインディングは実際には違いはありません。親UserControlにはDataContextがあり、すべての子コントロールには継承されます。個々の子コントロールごとに、そのDataContextを設定することもできます。バインディング式は常にDataContextを基準にしており、DataContextはコードで設定できます。あなたの場合、たぶん何らかのモデルになります。

私は役立つことを願っています。

関連する問題