2009-07-10 7 views
2

プロパティにバインドされたテキストボックスがあります。プロパティはタイマーから更新され続けます。私がしようとしているのは、テキストボックスに何かを入力しているときに、テキストボックスのプロパティからの更新をやめるようにすることです。それを行う方法はありますか?継続的に更新されるプロパティにバインドされたテキストボックスを手動で編集する際の問題

ありがとうございます!

答えて

2

私はWPFやデータバインディングの専門家ではないので、より良い方法があるかもしれませんが、GotFocusイベントとLostFocusイベントを処理し、それらのイベントハンドラでデータバインドを追加/削除する必要があります。

+0

などをチェックすることなく、短い形です!それは良いアイデアです。 – djcouchycouch

1

は私がのために何かをしたい:あなたはBindingオブジェクトへのアクセス権を持っている場合は、自動更新を防ぐことができますExplicitにそのUpdateSourceTriggerプロパティを設定することができ

public void Timer_Tick(object sender,EventArgs eArgs) 
    { 
    if(!Textbox.GotFocus()) 
    { 
      // Regular updating of textbox 
    } 
    } 
1

。おそらく、

EDIT

もちろんこの

UpdateSourceTrigger old; 

protected override void OnGotFocus(RoutedEventArgs e) 
{ 
    Binding b = BindingOperations.GetBinding(textBox1, TextBox.TextProperty); 
    old = b.UpdateSourceTrigger; 
    b.UpdateSourceTrigger = UpdateSourceTrigger.Explicit; 
} 

protected override void OnLostFocus(RoutedEventArgs e) 
{ 
    Binding b = BindingOperations.GetBinding(textBox1, TextBox.TextProperty); 
    b.UpdateSourceTrigger = old; 
} 

のようなもの、これははい、そうですヌルが

+0

Hmmm。 Max Schmelingの提案とあなたのアイデアを組み合わせることで、解決策につながる可能性があります。 – djcouchycouch

+0

さて、取得したBindingオブジェクトにこのプロパティを設定するGotFocusハンドラとLostFocusハンドラを追加するのは難しくありません。 –

+0

少しのコードを思いついて、私の答えを編集しました。 –

関連する問題