‫Bem vindo de volta.
‫E neste vídeo que vamos falar, notifico a propriedade alterada, então sobre esta interface, que nos
‫permite acionar algo se uma propriedade foi alterada e vimos propriedade alterada no último vídeo quando
‫estávamos usando o binding.
‫E vamos fazer isso de maneira um pouco diferente desta vez.
‫E você mesmo verá como usar essa interface.
‫Então, em vez de uma grade, quero usar um painel fixo porque quero empilhar as coisas e vou
‫empilhá-las.
‫Em primeiro lugar, uma etiqueta para a qual irei definir o conteúdo como
‫um e irei fechar esta etiqueta assim.
‫E abaixo disso, quero ter uma caixa de texto onde podemos inserir um valor.
‫Portanto, não vou usar um bloco de texto, uma caixa de texto aqui.
‫Vou fechar imediatamente.
‫Isso e na caixa de texto, quero ter a largura de 100 pixels, uma altura de, digamos, 30 pixels, e depois
‫quero definir o texto.
‫Agora, o texto deve ser encadernado.
‫Vou usar mineração de dados aqui.
‫E o caminho que desejo usar será o número um e o modo será nos dois sentidos.
‫Então, vimos o que esse modo significa e o que esse caminho significa.
‫Portanto, agora vamos copiar este código e duplicá-lo aqui.
‫Vou copiar e colar duas vezes.
‫Então isso vai ser entorpecido para o mesmo aqui e isso vai ser um resultado.
‫Portanto, este será o resultado e este será o número três.
‫Então agora você deve estar se perguntando o que é esse número um e dois e o resultado porque.
‫Bem, temos o número um e o número dois e assim por diante.
‫Mas estes são apenas conteúdos.
‫Eles não são nomes.
‫Portanto, para nos conectarmos a eles ou usá-los, precisamos entrar em nosso código, porque quero criá-los
‫aqui.
‫Vou criar uma nova classe, na verdade, porque vamos usar a janela principal como nosso programa.
‫Tão semelhante ao nosso programa.
‫Mas quero usar o notifico alterado.
‫E para usar essa interface, preciso criar uma nova classe que possa herdar dela.
‫Vou usar uma nova classe aqui e vou chamá-la de algum, porque o que quero fazer é se voltarmos para o arquivo
‫XML, temos esse número um, número dois e três.
‫E o que eu quero é se eu adicionar um valor aqui e um valor ali, então o valor aqui na parte
‫inferior deve ser automaticamente a soma dos dois anteriores.
‫Tudo bem.
‫Vou usar uma nova classe para isso.
‫E essa classe deve herdar da propriedade Notifico alterada.
‫E para fazer querer usar isso, notifiquei a propriedade alterada.
‫Precisamos usar o sistema, esse modelo de componente.
‫Vou usar o modelo de terceiro componente do sistema.
‫Agora você pode ver que nossa interface é verde, que geralmente funciona bem como o verde, que é a
‫cor da interface no Visual Studio.
‫E agora posso corrigir esses erros potenciais.
‫Então você vê, eu preciso implementar a interface.
‫Então vou fazer isso.
‫E, como você pode ver, temos este evento público, propriedade alterada, propriedade do manipulador de eventos alterada.
‫E agora, para usar isso, precisaremos criar um método privado chamado void on property changed, que vai receber
‫uma propriedade.
‫E, no meu caso, essa propriedade será uma string.
‫E eu quero verificar primeiro.
‫Se a propriedade foi alterada, a propriedade alterada não está vazia.
‫Então não é igual agora, porque se for esse o caso, então eu quero ir em frente e chamar a propriedade
‫de alterada.
‫Essa nova propriedade mudou os arcos de evento, que vou passar para as propriedades, portanto, a propriedade mudou os arcos de evento, como
‫você pode ver, precisa de um nome de propriedade forte.
‫E o nome da propriedade que desejo passar é a própria propriedade.
‫Então, na mudança de propriedade, isso chamará essa propriedade e vou inserir uma parte aqui.
‫Tudo bem, então vamos simplesmente chamar esse evento de alteração de propriedade e agora, para usar todos
‫eles, precisamos ter várias propriedades.
‫E vou começar criando campos privados primeiro.
‫Então, uma string privada, não.
‫Um, depois uma string privada, nomeie dois e, finalmente, uma string privada chamada resultado.
‫E agora eu crio propriedades para todos eles.
‫Vou criar uma propriedade chamada Namwon.
‫E essa propriedade deve ser um pouco diferente da padrão.
‫Portanto, não vou usar este get e set básico.
‫Vou usar um autodefinido, então vou definir um sozinho.
‫E não deve retornar Namwon, mas deve retornar enquanto não aquele com capital, não a propriedade, mas
‫na verdade este campo aqui.
‫Então vai devolver Namwon.
‫Portanto, retorne o número um.
‫E se eu disse algo, quero definir o valor.
‫A propósito, eu uso string aqui no topo, então minha propriedade também deve ser strings.
‫Vou devolver o Namwon.
‫E agora, se alguém tentar definir o número um, quero tentar analisar isso, porque e se não for um número que
‫o usuário inseriu?
‫E se ele inserisse, não sei, letras ou algo assim?
‫Então eu quero pegar isso e mudar isso.
‫Vou usar esse número e criar um novo livro aqui.
‫E vou chamar o resultado vai estar no tripartismo e vou tentar passar o valor e vou
‫pegar o número.
‫Portanto, já vimos Tripa antes.
‫O que ele simplesmente faz é tentar passar o valor fornecido para um número inteiro.
‫E se funcionou, então será verdade.
‫E se não funcionar, será falso.
‫E, a propósito, se funcionou, também obteremos o número.
‫Portanto, se eu puder ou obtiver um valor positivo agora, direi apenas que ninguém será o valor.
‫E também o que eu quero mudar ou o gatilho é possuir a propriedade alterada e vou acionar o número
‫um.
‫Tudo bem.
‫Portanto, vou alterar essa propriedade número um se os valores forem alterados.
‫Agora, o que também podemos fazer é copiar isso para o nosso segundo número.
‫Então, o número dois, e vou mudá-lo para o número dois, também será um número e será
‫o número dois e aí também.
‫E agora, finalmente, precisamos de uma propriedade para nosso resultado.
‫Vou criar esse resultado de string público.
‫E este também terá um get e um set.
‫Então aqui eles vão ter e o resultado vai estar nessa passagem nº.
‫1.
‫Plus int.
‫Para repassá-los e por que posso fazer isso agora?
‫Bem, porque estou retornando-os para e sempre que estou definindo Namwon e eu também estou, uma vez aqui eles já são inteiros
‫porque estão apenas configurados, eles só têm um valor se forem um número, OK, então, caso contrário eles nunca
‫serão configurados, eles estarão vazios.
‫E então o que precisamos fazer é retornar algo aqui.
‫Vou voltar restaurado para a string.
‫Então, o resultado.
‫Agora, se alguém tentar definir o resultado, simplesmente farei o seguinte.
‫Portanto, definir o resultado final será e passará realmente a mesma coisa que fizemos aqui, só que não o
‫devolvemos, mas definimos de forma resolvida que haverá descanso para a string.
‫E agora aqui, chamamos a propriedade, mudamos nossos resultados, e a mesma coisa vale para nosso número e
‫numb um.
‫Assim, isso muda na propriedade alterada, como você deve se lembrar, isso altera o valor da propriedade.
‫Portanto, a propriedade alterou os ARGs de evento, e isso levará a propriedade e
‫chamará esse evento alterado de propriedade e, em seguida, todas essas propriedades.
‫Portanto, a propriedade número um, a propriedade número dois e o resultado um serão notificados e nosso resultado deve
‫ser alterado.
‫Então, o que eu quero ter é toda vez que alguém inserir um número, esse número três também
‫será alterado.
‫E antes de verificarmos ou testarmos isso, precisamos entrar em nosso arquivo ponto-ponto e realmente criar um objeto
‫de ou alguma classe.
‫Portanto, criamos a mesma classe e vou prosseguir e criar um novo objeto.
‫Vou criá-lo aqui, que não será apenas um objeto, mas também uma propriedade.
‫Portanto, algum objeto irá obtê-lo e configurá-lo.
‫Agora, para ter acesso a isso, precisamos tornar nosso público também.
‫Então, vamos tornar esta classe pública e agora podemos prosseguir e usar para algum objeto.
‫Agora, posso definir algum objeto, algum objeto aqui no início, e direi que é uma nova soma com
‫o valor de um não sendo um.
‫E o número dois, tendo apenas um valor de, digamos, três.
‫E, como você pode ver, temos duas strings aqui porque, caso contrário, não funcionará porque essas propriedades
‫são strings.
‫Direito.
‫Portanto, agora o que eu preciso chamar ou o que eu preciso definir é o contexto de dados para nosso algum objeto, porque caso
‫contrário, nada acontecerá.
‫Então, agora vamos executar isso.
‫E então você vê, nunca dissemos o número três, que é o resultado.
‫E talvez seja ainda melhor se realmente chamá-lo de resultados.
‫Então vamos aqui e mudar o rótulo para o resultado ou talvez até algum.
‫Então essa vai ser a soma, talvez até algo como o número um e o número dois.
‫OK, agora vamos executá-lo novamente.
‫E você é um mais três é quatro, então agora vamos mudar para digamos 25 e, como você vê, mudou.
‫Agora que mudou o valor de três para 31, você vê 56.
‫Agora, se eu mudar esse valor aqui.
‫Veja, ele está voltando ao seu valor normal, porque o que fizemos aqui no Setter, se alguém tentar definir o
‫resultado, simplesmente definimos o resultado para, novamente, o valor de e após o número um e o número
‫dois.
‫Portanto, ele sempre voltará ao resultado real se alguma vez tentarmos definir o resultado de nosso resultado de
‫string.
‫OK, agora você pode brincar com isso e calcular o que quiser e terá respostas
‫em tempo real, mais tempo real.
‫Bem, somas de seus dois valores.
‫Você pode ir em frente e adicionar outro ou agora pode ir em frente e alterá-lo para ser um multiplicador.
‫Mas agora eu sei que foi uma configuração e tanto que tivemos que fazer.
‫E então eu quero passar por isso mais uma vez bem rápido com você.
‫Portanto, no arquivo Zemo, tínhamos esses três rótulos e essas três caixas de texto, que são apenas os elementos da IU.
‫Direito.
‫E o texto de cada um deles está conectado.
‫Portanto, este tem o caminho para o número um.
‫Este é o caminho para os dois.
‫E este tem o caminho, o resultado.
‫E esses são aqueles aqui.
‫Assim, as propriedades número um, número dois e número três, criamos uma classe extra, que é herdada do widget I
‫notified property changes, que é uma interface que tem esse manipulador de eventos alterado de propriedade, que
‫é um evento e que é chamado de propriedade mudado.
‫Agora criamos um método chamado On Property Changed, que é chamado toda vez que uma de nossas propriedades
‫é alterada.
‫E isso é feito quando uma propriedade é definida.
‫Portanto, temos essa propriedade, número um.
‫E se alguém está tentando definir esse valor de Namwon, vamos simplesmente chamar isso na propriedade
‫alterada.
‫E aqui definimos a propriedade.
‫Então dizemos, OK, dê-me uma propriedade e alteramos essa propriedade para o valor que foi fornecido.
‫Portanto, é basicamente o que definimos, mas, ao mesmo tempo, não apenas definimos aquele que estamos definindo
‫atualmente em termos de centro.
‫Portanto, não definimos apenas ninguém aqui, mas também definimos o resultado e não definimos o e aqui você vê
‫esta linha aqui.
‫Ele define este campo para alterar este campo de string privado e esta propriedade on alterada, na verdade, altera
‫a própria propriedade.
‫Portanto, ele mudará o valor da própria propriedade.
‫Mas, ao mesmo tempo, mudará o valor do resultado da propriedade.
‫Portanto, ele atualizará nosso resultado cada vez que alterarmos o valor de um.
‫E o mesmo vale para eles também.
‫E o mesmo vale para o nosso resultado, onde eu disse que cada vez que o resultado é alterado,
‫queremos ir em frente e chamar a propriedade.
‫Método alterado também.
‫Certo, agora você vê como pode usar a propriedade I-95 alterada, como você pode usar essa interface e pode usá-la
‫de várias maneiras diferentes, e é realmente interessante usá-la sempre que qualquer propriedade é alterada.
‫Então, digamos que a cor seja alterada e você queira acionar um evento que fará algumas
‫animações extravagantes ou alguém pressione um botão que mudará e uma propriedade em algum lugar do seu programa.
‫E você quer que algo ótimo aconteça depois, você pode configurar tudo isso com isso.
‫Eu notifiquei a interface da propriedade alterada com você, é claro, o que você precisa fazer é criar uma correlação de herança aqui entre a
‫classe que você está usando.
‫E eu notifico a propriedade alterada.