mikeo_410


Silverlight のバインディング

  Silverlight アプリケーション・プロジェクトを作成して、前述の「WPF のバインディング」のサンプルを乗せ換えて見ます。

  XAMLは、ボディー(最初の Grid 以下)をコピーしました。
  ビハインドコードは、コンストラクタ以外をコピーしました。
  Class1.cs は、コピーして、namespace の名前を、ビハインドコードのnamespace の名前に変えました。

  実行して見ると、TextBox => TextBlock のバインドは機能します。
  変数との間のバインドは、双方向とも無視されます。エラーになったりはしませんが、TextBox との間でデータが交換されません。

  以下の2点を修正すると同じように動きます。

1.Class1 は public

  気が付いていませんでしたが、WPFのサンプルのバインドする変数を保持するClass1の宣言に public が付いていません。
  public にすると、変数 => TextBox のバインディングは上手く行くようになりました。
  逆の TextBox => 変数は行われていません。
  動作としては、WPFのサンプルと同じように動くのですが、変数の set に記述してある Debug.WriteLine() が実行されていません。

2.TwoWay モード

  XAMLのバインドの設定に、 mode=TwoWay を付加すると、set が呼び出されるようになりました。

  1. <TextBox Name="textBox1"  Grid.Column="0" Text="{Binding bind_string, Mode=TwoWay}"/>


mikeo_410@hotmail.com