2011-11-21 18 views
0

私は3つのテクスチャーボックスと1つのスライダーを持っていて、それらのテキストプロパティを変更します。私がしなければならないのは、スライダのvalueプロパティをTextテキストボックスプロパティにバインドすることですが、特定の方法でバインドします。テキストボックスの1つがアクティブになっているとき(私はフォーカスされています)、Textプロパティを変更するにはスライダが必要です。それだけです私はこれまでバインドしているが、スライダを動かすとすべてのテキストボックスが更新される。条件付きテキストボックス(スライダーバインド付き)

アイデア? 私はコンバータについて読んでいましたが、私は自分のプログラム内でそれをどのように実装するのか分かりません。

http://forums.create.msdn.com/forums/t/95548.aspxここには、私のスライダとテキストブロックのコードがあります。

+0

外部リンクとしてあなたのコードを投稿しないでください。それはそれを見分けがたくすることを意味し、人々がこのサイトから離れて移動したり、新しいブラウザウィンドウを開いたりするのを手伝ってくれることを意味します。何らかの理由で外部サイトがダウンした場合、あなたの質問は無意味になります。ありがとう。 :) –

答えて

0

何テキストボックスがフォーカスを受け取ったときに、単に活性結合の変更について:

コードの後ろ:

private Binding _activeBinding; 
    private TextBox _activeTextbox; 
    private TextBox ActiveTextBox 
    { 
     get { return _activeTextbox; } 
     set 
     { 
      // Check if a binding exists, initialize if one does not 
      if (_activeBinding == null) 
      { 
       _activeBinding = new Binding("Value"); 
       _activeBinding.Source = this.sld; 
      } 

      if (_activeTextbox != null) 
      { 
       // Clear the binding 
       _activeTextbox.ClearValue(TextBox.TextProperty); 
      } 

      _activeTextbox = value; 

      if (_activeTextbox != null) 
      { 
       // Set the new binding 
       _activeTextbox.SetBinding(TextBox.TextProperty, _activeBinding); 
      } 
     } 
    } 

    private void TextBox_GotFocus(object sender, RoutedEventArgs e) 
    { 
     this.ActiveTextBox = sender as TextBox; 
    } 

XAML:

<Grid> 
    <StackPanel> 
     <TextBox GotFocus="TextBox_GotFocus">1</TextBox> 
     <TextBox GotFocus="TextBox_GotFocus">2</TextBox> 
     <TextBox GotFocus="TextBox_GotFocus">3</TextBox> 
     <Slider x:Name="sld"></Slider> 
    </StackPanel> 
</Grid> 
+0

こんにちは、私のプログラムにこれを追加できますか?私はそのパネルをスタックするために4つの項目をgrouし、mainpage.xaml.csにそのmetodsを追加する必要がありますか? – Whencesoever

+0

スタックパネルに項目を追加する必要はありません。これは私のコード例です。 1)私の例のように、コードにActiveTextboxプロパティを追加します(これはバインディングの変更を処理します)。 2)TextBoxのXAML宣言から "Text = {Binding ..."を削除します。 3)私の例で作成した新しいメソッドTextBox_GotFocusメソッドを指すように、各TextBoxのXAML宣言で_GotFocusイベントハンドラを変更します。この場合、私のTextBox1,2,3はあなたの既存のテキストボックスのためのスタンドインです。 – robowahoo

+0

タイプまたは名前空間の名前のバインディングが見つかりませんでした。 – Whencesoever