INOTIFYPROPERTYCHANGED - NOTIFICAR CLASSE DE CIMA

 Tópico anterior Próximo tópico Novo tópico

INOTIFYPROPERTYCHANGED - NOTIFICAR CLASSE DE CIMA

C#

 Compartilhe  Compartilhe  Compartilhe
#489166 - 12/06/2019 11:56:40

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe
Bom dia, Pessoal eu queria notificar a mudança de uma propriedade da classe de nível superior.
Exemplo

public class ObjetoA
{
public string Campo1 { get; set; }
public string Campo2 { get; set; }
public bool ControleABCVisible { get; set; }
public ObjetoB objAnexo { get; set; }
}

public class ObjetoB
{
public string Campo1 { get; set; }
public string Campo2 { get; set; }
}

Eu queria que ao modificar o ObjetoB.Campo2 fosse enviada uma notificação para ObjetoA.ControleABCVisible.

Teria como fazer isso ?




#489169 - 12/06/2019 12:42:14

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Ambas devem implementar a mesma interface e você aciona usando um método interno

_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#489173 - 12/06/2019 15:44:58

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe
Eu na verdade sempre Herdo de uma classe que implementa INotifyPropertyChanged.

public class ObjetoPai : NotifyBase
{
    public string Campo1 { get; set; }
    public bool ControleABCVisible { get; set; }
    public ObjetoFilho objAnexo { get; set; }
}

public class ObjetoFilho : NotifyBase
{
        private string _campoX;

        public string CampoX
        {
            get { return _campoX; }
            set
            {
                SetProperty(ref _campoX, value);
                   if (_campoX == "123")
                  {
                        OnPropertyChanged("ObjetoPai.ControleABCVisible")
                  }


            }
        }
}

public abstract class NotifyBase : INotifyPropertyChanged
{
//código
}

Mas eu não tou conseguindo montar a lógica para notificar a propriedade



#489174 - 12/06/2019 16:04:11

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe
Eu acho que desenrolei, já já posto o resultado.



Resposta escolhida #489190 - 14/06/2019 00:29:48

JABA
CABO FRIO
Cadast. em:Agosto/2005


Aqui tem um excelente exemplo:

www.macoratti.net/16/11/c_inot1.htm

_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#489199 - 14/06/2019 11:44:30

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe

Última edição em 14/06/2019 11:52:36 por CLEVERTON

Citação:
:
Aqui tem um excelente exemplo:

www.macoratti.net/16/11/c_inot1.htm


KERPLUNK,
não sei se essa era a ideia que vc tentou me passar. de toda forma muito obrigado. é que meu tico e TECO é fraco

JABA
Cara, exatamente do jeito que eu queria, Perfeito!

Eu estava passado o ObjetoPai pra dentro do objeto filho e notificando a propriedade do Pai dentro da modificação de uma propriedade do Filho,
Mas esse exemplo ficou Perfeito!

[Edição] E O Bacana, que dá pra fazer tudo do ObjetoPai.




#489200 - 14/06/2019 11:55:12

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe
O Resultado ficou assim

        private ImpostoCupomMV _impostocupom;
        public ImpostoCupomMV ImpostoCupom
        {
            get { return _impostocupom; }
            set
            {
                _impostocupom = value;
                if (_impostocupom != null)
                {
                    _impostocupom.SetCRT(_crt);
                    _impostocupom.PropertyChanged += _impostocupom_PropertyChanged;
                }
            }

        }

        private void _impostocupom_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "MeuCampo")
            {
                //Código
            {
        {



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por CLEVERTON em 14/06/2019 11:55:36