속성에 바인딩 된 텍스트 상자가 있습니다. 이 속성은 타이머에서 지속적으로 업데이트됩니다. 내가하려고하는 일은 텍스트 상자에 텍스트를 입력하는 중일 때 텍스트 상자가 속성에서 자동으로 업데이트되지 않도록해야한다는 것입니다. 그렇게 할 수있는 방법이 있습니까?지속적으로 업데이트되는 속성에 바인딩 된 텍스트 상자를 수동으로 편집 할 때의 문제
감사합니다.
속성에 바인딩 된 텍스트 상자가 있습니다. 이 속성은 타이머에서 지속적으로 업데이트됩니다. 내가하려고하는 일은 텍스트 상자에 텍스트를 입력하는 중일 때 텍스트 상자가 속성에서 자동으로 업데이트되지 않도록해야한다는 것입니다. 그렇게 할 수있는 방법이 있습니까?지속적으로 업데이트되는 속성에 바인딩 된 텍스트 상자를 수동으로 편집 할 때의 문제
감사합니다.
저는 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
}
}
.
편집
아마도 물론이
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;
}
같은이는 널 (null)이
흠. 맥스 슈멜링 (Max Schmeling)의 제안과 결합 된 당신의 생각은 해결책의 좋은 단서가 될 것입니다. – djcouchycouch
글쎄, 검색된 Binding 객체에서이 속성을 설정할 GotFocus 핸들러와 LostFocus 핸들러를 추가하기가 너무 어렵지 않습니다. –
약간의 코드를 작성한 후 내 대답을 편집했습니다. –
가 예, 그렇습니다 등을 확인하지 않고, 간단한 양식입니다! 좋은 생각이야. – djcouchycouch