바인딩 지연 이제A는 다음 뷰 모델의 특성을 고려 소스
<TextBox Text="{Binding SlowProperty}" />
는, 여기에 문제가 될 때마다 값이 SlowProperty가 변경되면 텍스트 상자가 이동하여 값을 얻으려고 시도하는 경우가 매우 많습니다. 그러나 비동기 바인딩을 사용하여 상황을 완화 할 수는 있지만 여전히 CPU주기를 낭비 할 것입니다. 일정 지연 후 바인딩을 얻기 위해 노력할 것이다
<TextBlock Text="{z:DelayedSourceBinding SlowProperty}" />
:
대신, 내가 가지고 싶은 것은 같은입니다. 예를 들어 SlowProperty
이 5 번 연속으로 변경되면 잠시 후 마지막 텍스트 만 텍스트 상자에 표시됩니다.
나는 그런 일을 수행하는 following project을 발견했습니다, 그래서 내 예를 들어 나는 그렇게처럼 사용할 수 있습니다
<TextBox Text="{z:DelayBinding Path=SearchText}" />
그것으로 문제는 그 후에 바인딩 대상를 업데이트한다는 것입니다 지연. 그러나 소스 경로는 평가되고 소스의 모든 변경시 해당 getter가 실행됩니다. 어느 SlowProperty
의 경우 CPU 사이클을 낭비합니다.
지연 바인딩 클래스를 직접 만들려고했지만 got stuck. 거기에 그렇게 할 수있는 다른 바인더가 있습니까? DelayBinding에 유사한 솔루션 -
DeferredBinding : 완성도를 위해서
, 여기이 개 다른 유사한 작업을 수행 프로젝트, 아직 없음 주소 문제 내가 경험하고 있습니다. 그러나 사용하기가 조금 더 복잡합니다.
DelayedBindingTextBox - 사용자 지정 텍스트 상자 컨트롤을 사용하여 지연 바인딩을 구현합니다.
감사합니다.
콜린, 우수. 간접 접근법의 또 다른 계층을 추가하면 모든 CS 문제를 해결할 수 있습니다! :) –
아마 맞을 것입니다. 실제로 VM 레벨에서 해결해야 할 문제입니다. 하지만, 필자는 설명 된 것과 같이 사용자 정의 바인딩을 수행 할 수 있는지 알고 싶습니다. – VitalyB