요약

완료됨

귀하가 유지 관리하는 날씨 앱의 날씨 서비스가 최근 사용 종료를 발표했습니다. 다른 날씨 서비스를 조사해야 했습니다. 서비스를 변경하면 데이터가 변경된다는 것을 알고 있으므로 UI를 업데이트하는 데 코드 비하인드를 사용하던 것을 데이터 바인딩으로 전환하려고 했습니다. 이렇게 하면 어떤 날씨 서비스를 사용할지 결정할 때 UI에 미칠 영향을 걱정할 필요가 없습니다.

연습에서 수행한 데이터 바인딩은 데이터가 변경될 때 UI를 업데이트하는 데 필요한 코드를 줄여 줍니다. 데이터를 표시하기 위해 단추의 이벤트 처리기를 사용하여 UI의 컨트롤과 상호 작용하는 대신 데이터 바인딩으로 전환했습니다. 날씨 서비스의 데이터 개체는 페이지의 바인딩 컨텍스트로 설정되었으며 페이지의 컨트롤은 해당 데이터 개체의 속성에 바인딩되었습니다. 날씨 서비스가 업데이트되는 방식에 관계없이 UI가 데이터와 자동으로 동기화되었습니다. 또한 변환기와 함께 데이터 바인딩을 사용하여 화씨에서 섭씨로 전환하는 코드 비하인드를 줄일 수 있었습니다.

코드 비하인드가 데이터 바인딩 없이 영향을 받는다고 상상해 보세요. 컨트롤 이름을 바꾸거나, 컨트롤 하나를 다른 형식으로 변경하거나, 컨트롤을 삭제한 경우에도 코드 비하인드가 더 이상 컴파일되지 않습니다. 날씨의 특정 데이터 필드(예: 습도)의 제공을 중지하는 경우 이를 UI에 표시하려고 할 때 코드가 충돌합니다. 앱은 갑자기 작동을 중지하게 되고 사용자는 왜 그런지 영문을 모를 것입니다.

데이터 바인딩은 데이터를 UI와 자동으로 동기화합니다. 날씨 데이터가 변경되면 바인딩된 모든 항목도 바로 변경됩니다. UI 속성 형식과 데이터 개체 형식이 일치하지 않을 때 변환기가 바인딩된 데이터를 변환하여 UI에서 올바르게 표시되도록 합니다. 이렇게 하면 UI를 유지하는 데 필요한 코드 비하인드가 줄어듭니다. 데이터의 출처나 데이터가 트리거된 방식은 대부분의 UI에서 문제가 되지 않습니다. 데이터 개체에 습도가 더 이상 제공되지 않으면 데이터 바인딩된 UI는 습도 레이블에 아무것도 표시하지 않으며 충돌하지도 않습니다. 사용자에게는 충돌하는 앱 대신 이러한 환경이 훨씬 더 낫습니다.

자세한 정보