Resumo
O aplicativo de meteorologia que você mantém usa um serviço de meteorologia que anunciou seu fechamento recentemente. Você precisou começar a investigar outros serviços de meteorologia. Sabendo que trocar de serviço significa que seus dados podem ser alterados, você queria parar de usar o code-behind para atualizar a interface do usuário e mudar para a vinculação de dados. Assim, quando decidir qual serviço de meteorologia irá usar, você não vai precisar se preocupar com a interface do usuário, que não será afetada.
A vinculação de dados que você fez nos exercícios reduziu o tamanho do código necessário para atualizar a interface do usuário quando os dados são alterados. Em vez de usar o manipulador de eventos do botão para interagir com os controles na interface do usuário e apresentar os dados, você mudou para a vinculação de dados. O objeto de dados do serviço de meteorologia foi definido como o contexto da vinculação para a página e os controles na página foram vinculados às propriedades desse objeto de dados. A interface do usuário passou a ser sincronizada com os dados automaticamente, independentemente das atualizações do serviço de meteorologia.
Imagine que o code-behind seja afetado sem a vinculação de dados. Se você renomeasse um controle, alterasse um controle para um tipo diferente ou até mesmo excluísse um controle, seu code-behind iria parar de ser compilado. Se o serviço de meteorologia parasse de fornecer um campo de dados específico, como a umidade, seu código apresentaria falha ao tentar apresentá-lo na interface do usuário. Os usuários fariam com que o aplicativo parasse de funcionar repentinamente e eles não saberiam o que estava acontecendo.
A vinculação de dados sincroniza os dados com a interface do usuário automaticamente. Assim que os dados meteorológicos forem alterados, qualquer coisa vinculada a eles mudará também. Quando um tipo de propriedade de interface do usuário e o tipo de objeto de dados não correspondem, um conversor transforma os dados associados para que sejam apresentados corretamente pela interface do usuário. Isso reduz o code-behind necessário para a manutenção da interface do usuário. De onde os dados vêm e como são acionados não é motivo de preocupação para a maior parte da UI. Se a umidade deixasse de ser fornecida no objeto de dados, por exemplo, a interface do usuário vinculada a dados não mostraria nada no rótulo de umidade, em vez de falhar. É uma experiência muito melhor para seus usuários, no lugar de um aplicativo que apresenta falhas.