private void ValidarSomenteDigito(object sender, ValidacaoEventArgs e)
        {
            //verifica o caractere e retorna boleano
            var ehValido = e.Texto.All(char.IsDigit);

            e.EhValido = ehValido;
        }
        protected virtual void OnValidacao()
        {
            //evita erro de validacao antes dos campos serem populados
            if (_validacao != null)
            {
                //guarda todos os delegates do tipo EventHandler
                var listaValidacao = _validacao.GetInvocationList();

                //constroi o argumento da validacao
                var eventArgs = new ValidacaoEventArgs(Text);

                var ehValido = true;

                //loop entre todas as validacoes
                foreach (ValidacaoEventHandler validacao in listaValidacao)
                {
                    //chama o eventArgs
                    validacao(this, eventArgs);

                    //se uma das validações retorna falso
                    if (!eventArgs.EhValido)
                    {
                        ehValido = false;
                        break;
                    }
                    ;
                }

                if (ehValido)
                {
                    Background = new SolidColorBrush(Colors.White);
                }
                else
                {
                    Background = new SolidColorBrush(Colors.Orange);
                }
            }
        }
        //utilizacao
        //txtNome.TextChanged += ConstruirDelegateValidacaoCampoNulo(txtNome);
        //private TextChangedEventHandler ConstruirDelegateValidacaoCampoNulo(TextBox txt)
        //{
        //    //usando expressão lambda para o retorno
        //    return (o, e) =>
        //    {
        //        var textoEstaVazio = String.IsNullOrEmpty(txtNome.Text);

        //        if (textoEstaVazio)
        //            txtNome.Background = new SolidColorBrush(Colors.OrangeRed);
        //        else
        //            txtNome.Background = new SolidColorBrush(Colors.White);
        //    };
        //}
        #endregion

        //metodo que retorna um delegate
        private void ValidarCampoNulo(object sender, ValidacaoEventArgs e)
        {
            var ehValido = !String.IsNullOrEmpty(e.Texto);

            e.EhValido = ehValido;
        }