associazione a una proprietà di un object

Voglio associare una serie di TextBox in una griglia alle proprietà di un object che è a sua volta un’altra proprietà nel mio ViewModel (il DataContext).

CurrentPerson costituito da proprietà Name ed Age

All’interno del ViewModel:

 public Person CurrentPerson { get; set ... (with OnPropertyChanged)} 

Xaml:

   

Non ero sicuro dell’approccio da utilizzare, ho impostato un altro DataContext nell’ambito della griglia, senza alcun risultato, Ho anche provato a impostare l’origine e il percorso come Source = CurrentPerson, Path = Age di nuovo senza alcun risultato, questi erano per la prova e vedere se ci sarebbe qualche cambiamento o no.

Come dovrei ottenere questo?

I membri della tua class Name e Age aumentano personalmente gli INPC?

Se si desidera aggiornare il valore di Name o Age nel ViewModel e farlo riflettere nella vista, è necessario che aumentino le proprietà modificate individualmente nella class Person .

I collegamenti sono soddisfacenti, ma la vista non viene più notificata delle modifiche dal modello di visualizzazione. Inoltre, per impostazione predefinita, UpdateSourceTrigger per un TextBox è LostFocus , LostFocus che su PropertyChanged aggiornerà la stringa nel ViewModel durante la digitazione.

Semplice esempio:

 public class Person : INotifyPropertyChanged { private string _name; public string Name { get { return _name; } set { if (value == _name) return; _name = value; OnPropertyChanged(() => Name); } } // Similarly for Age ... } 

Ora il tuo xaml sarebbe:

     

oppure puoi anche eseguire il binding come suggerito da @Kshitij

     

e per aggiornare il modello di visualizzazione durante la digitazione

     

Prova questo:

   

In sostanza, puoi eseguire il drill down in proprietà usando il . separatore.

Per riferimento futuro, se si desidera eseguire il drill down in raccolte, è ansible utilizzare MyCollection[x] proprio come si farebbe nel codice (dove x sarebbe sostituito da un numero hardcoded, non una variabile ).