Domanda

Ho una proprietà generato automaticamente dal database nel mio edmx: Descrizione . poi creo un file "classe parziale" cs per l'entità e aggiungi una proprietà di sola lettura: shortDescription . getter di shortDescription elabora semplicemente (avanzamento riga rimuove, ritorno del carrello, ecc) Descrizione.

Come posso aumentare la notifica di modifica di proprietà per shortDescription sul setter di descrizione?

Grazie!

È stato utile?

Soluzione

Questo sarà un hack, ma si può fare.

In primo luogo, è necessario eseguire l'override ReportPropertyChanging e ReportPropertyChanged . Poi controlla il parametro per il nome della vostra proprietà ... in questo caso "Descrizione". Se si verifica, ReportPropertyChanging chiamata o ReportPropertyChanged con il nome della proprietà derivata, in questo caso "shortDescription". Per ogni altro valore del parametro, chiamare la versione base del ReportPropertyChanging/Changed.

Modifica Ad esempio:

    protected override void OnPropertyChanging(string property)
    {
        if (property == "Description")
        {
            base.OnPropertyChanging("ShortDescription");
        }
        base.OnPropertyChanging(property);
    }

    protected override void OnPropertyChanged(string property)
    {
        if (property == "Description")
        {
            base.OnPropertyChanged("ShortDescription");
        }
        base.OnPropertyChanged(property);
    }

Altri suggerimenti

I metodi sono anche parziale, così nella classe parziale è possibile aggiungere codice come questo

 partial void OnDescriptionChanged()
  {
    OnPropertyChanged("ShortDescription"); 
  }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top