0

우리는 Visual Studio LightSwitch HTML 클라이언트를 사용하고 있으며 텍스트가 입력 될 때 바인딩 대상을 업데이트하려고합니다. 컨트롤의 LostFocus보다는 TextBox 컨트롤.LightSwitch HTML 클라이언트에서 TextBox 컨트롤의 바인딩 대상을 PropertyChanged (keydown)로 업데이트

이렇게하면 XAML UpdateSourceTrigger.PropertyChanged rather than UpdateSourceTrigger.LostFocus을 사용하는 것과 비슷한 방식으로 작동합니다.

이것을 구현하기위한 옵션/권장 방법은 무엇입니까?

답변

0

우리는 우리의 요구 사항에 적합한 방식으로이 문제를 해결하기 위해 다음과 같은 코드 패턴을 사용하여 결국 : -

myapp.AddEditCustomer.Name_postRender = function (element, contentItem) { 
    contentItem.dataBind("_view.isRendered", function (isRendered) { 
     if (isRendered) { 

      var tb = contentItem._view.underlyingControl; 
      tb.getView().on("keyup", ".id-element", null, function (e) { 
       tb.text = tb._textElement.val(); 
      }); 

      contentItem.dataBind("value", function (value) { 
       // Use the toastr library from nuget (http://www.nuget.org/packages/toastr) 
       // in order to display the value of the updated binding target 
       // and demonstrate that the update occurs on PropertyChanged 
       toastr.info("value [" + value + "]"); 
      }); 
     } 
    }); 
}; 

를 (기본 텍스트 상자 컨트롤의 입력 요소에 대해 추가)를의 keyup 처리기이 방법의 힘을 활용하여 일단 키가 릴리스되면 (자) 갱신하는 바인딩 타겟. 텍스트 상자 컨트롤의 렌더링이 끝나면 키 업 핸들러가 연결됩니다.

위 예제는 관련 NuGet 패키지 (toastr)를 사용하여 Visual Studio에 설치할 수있는 우수한 toastr JavaScript 라이브러리 (codeseven.github.io/toastr)를 사용합니다.