Binding의 각 속성 (UpdateSourceTrigger, Delay, NotifyOnSourceUpdated)의 동작에 대해
바인딩
평소에는 거기까지 참지 않는 속성을 메인에 비망록
BindingGroupName
바인딩을 그룹으로 지정할 때에 이용합니다.
BindingGroupName을 지정하는 것으로 일괄로 복수 컨트롤의 바인딩등을 조작할 수 있다.
BindsDirectlyToSource
Path를 평가할 때 데이터 항목을 기준으로 할지 또는 DataSourceProvider 개체를 기준으로 할지 여부를 나타내는 값을 가져오거나 설정합니다.
UpdateSourceTrigger
바인딩 타이밍을 조작할 수 있습니다.
로스트 포커스시에 동작
속성 변경시 동작.
매뉴얼, 갱신 타이밍은 BindingExpression.UpdateSource에서 실행하는 등 타이밍을 완전하게 제어하고 싶은 경우에 이용.
각 갱신 타이밍의 동작 이미지
Delay
소스를 업데이트하기 전에 밀리초 단위로 대기합니다.
.xaml
<TextBox Text="{Binding Text, ElementName=txtInput, UpdateSourceTrigger=PropertyChanged, Delay=1000}"/>
NotifyOnSourceUpdated
활성화하면 소스 업데이트 시 이벤트(NotifyOnSourceUpdated)가 활성화됩니다.
별로 사용하지 않을 것 같지만 디버깅 목적으로 일시적으로 켜서 모니터링에 사용합니다.
.xaml
<TextBox x:Name="txtNotifySouce" Text="{Binding Text, ElementName=txtInput, NotifyOnSourceUpdated=True}"
Binding.SourceUpdated="SourceUpdatedHandler" />
.csprivate void SourceUpdatedHandler(object sender, DataTransferEventArgs args)
{
UpdatedLog("SourceUpdatedHandler", args);
}
NotifyOnTargetUpdated
여기는 소스의 타겟 갱신시의 프로퍼티입니다.
.xaml
<TextBox x:Name="txtNotifyTarget" Text="{Binding Text, ElementName=txtInput, NotifyOnTargetUpdated=True}"
Binding.TargetUpdated="TargetUpdatedHandler"/>
.csprivate void TargetUpdatedHandler(object sender, DataTransferEventArgs args)
{
UpdatedLog("TargetUpdatedHandler", args);
}
NotifyOnSourceUpdated 및 NotifyOnTargetUpdated는 DataTransferEventArgs를 얻을 수 있으므로,세세한 속성까지 참조 가능합니다. 아래 속성 이름과 컨트롤의 내용을 출력합니다.
IsAsync
Binding을 수행할 때 비동기의 사용 불가능을 제어할 수 있습니다.
사용성 향상이나 일부 컨트롤의 동작이 느린 경우에 유효하네요.
화상+비동기의 대응에 대해서는 하기의 페이지가 참고가 됩니다.
Async Data Binding & Data Virtualization - CodeProject
샘플용으로 만든 소스를 커밋하고 있습니다.
GitHub - furugen/StudyBinding
Reference
이 문제에 관하여(Binding의 각 속성 (UpdateSourceTrigger, Delay, NotifyOnSourceUpdated)의 동작에 대해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/furugen/items/6201f74cf5d5a823d92b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)