プロパティにバインドされたテキストボックスがあります。プロパティはタイマーから更新され続けます。私がしようとしているのは、テキストボックスに何かを入力しているときに、テキストボックスのプロパティからの更新をやめるようにすることです。それを行う方法はありますか?継続的に更新されるプロパティにバインドされたテキストボックスを手動で編集する際の問題
ありがとうございます!
プロパティにバインドされたテキストボックスがあります。プロパティはタイマーから更新され続けます。私がしようとしているのは、テキストボックスに何かを入力しているときに、テキストボックスのプロパティからの更新をやめるようにすることです。それを行う方法はありますか?継続的に更新されるプロパティにバインドされたテキストボックスを手動で編集する際の問題
ありがとうございます!
私はWPFやデータバインディングの専門家ではないので、より良い方法があるかもしれませんが、GotFocusイベントとLostFocusイベントを処理し、それらのイベントハンドラでデータバインドを追加/削除する必要があります。
これまでのStackOverflowの質問が役に立ちました:.NET --- Textbox control - wait till user is done typingあなたはそれをかなり簡単に変更して、必要なものを行うことができます。
は私がのために何かをしたい:あなたはBinding
オブジェクトへのアクセス権を持っている場合は、自動更新を防ぐことができますExplicit
にそのUpdateSourceTrigger
プロパティを設定することができ
public void Timer_Tick(object sender,EventArgs eArgs)
{
if(!Textbox.GotFocus())
{
// Regular updating of textbox
}
}
。おそらく、
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;
}
のようなもの、これははい、そうですヌルが
Hmmm。 Max Schmelingの提案とあなたのアイデアを組み合わせることで、解決策につながる可能性があります。 – djcouchycouch
さて、取得したBindingオブジェクトにこのプロパティを設定するGotFocusハンドラとLostFocusハンドラを追加するのは難しくありません。 –
少しのコードを思いついて、私の答えを編集しました。 –
などをチェックすることなく、短い形です!それは良いアイデアです。 – djcouchycouch